funzione scrivi ore e piccolo random

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ciao a tutti
un po di codice se serve a qualcuno

funzione che trasforma un numero decimale in ore minuti secondi

PHP:
<?php
function trasforma_ore($decimale,$Ro){ //decimale = ore in decimale, Ro arrotondamento dei secondi
	$ore=(int)$decimale; //ore numero intero sessagesimale
	
	$minutiDec=($decimale-$ore)*60;//minuti in decimale
	if($ore==0){$ore="00";}elseif($ore<10){$ore="0".$ore;}
	$minuti=(int)$minutiDec; //minuti in sessagesimale
	
	$secondi=($minutiDec-$minuti)*60; //secondi in sessagesimale con frazioni di secondo
	if($minuti==0){$minuti="00";}elseif($minuti<10){$minuti="0".$minuti;}
	$secondi=round($secondi,$Ro);
	
	$divisore=":"; //oppure scegliere altro
	//$ritorna= $ore.$divisore.$minuti.$divisore.$secondi;
	$ritorna= $ore."h ".$minuti."'".$secondi."\""; //alternativa alla precedente
	return $ritorna;
}

echo "esempio<br><br>";
$velocita= 47.32; //km/h
$distanza = 3; //km
$tempoDec= $distanza/$velocita; //risultato in ore decimali = 9.464
$Arro=0; //non voglio decimali per = 1 decimi di sec, =2 centesimi. =3 millesimi

$tempo= trasforma_ore($tempoDec,$Arro);

echo "per percorrere ".$distanza." km alla velocità di ".$velocita." km/h impiego ".$tempo." (ore:min:sec)";

?>


estrazione di numeri random senza ripetizione

PHP:
<?php
//estrae N numeri casuali da min a Max senza ripetizione
$casuale= array(); //contenitore numeri random
$min=1; //minimo del range numeri casuali
$Max=20; //massimo del range
//se da min e Max da form inserire verifica min < Max
//$quanti=$Max-$min+1; //quanti numeri mi servono
$quanti=5; //quanti numeri mi servono alternativa alla precedente
//se da form inserire verifica quanti > zero
$j = 1; //salto lo zero per comodità

while( $j <= $quanti){ //inizio a ciclare i numeri
	$casuale[$j] = rand($min, $Max); //estraggo il numero casuale
	if ($j > 1){ // ho gia estratto almeno un numero
		for ($n = 1 ; $n < $j; $n++){ //guardo i numeri da uno a enne-uno
			for ($m = $n+1; $m <= $j; $m++){ //guardo i numeri da due a enne
				if ($casuale[$n] == $casuale[$m]){ //confronto il numero N con i successivi estratti
				$j--; //se trovo due numeri uguali decremento J
				} 
			}
		}
	}
	$j++; //incremento j di uno
} // fine while

/* ciclo di prova----------------------------*/

for ($k = 1; $k <= $quanti; $k++){

echo "<br> n° ".$k." casuale = ".$casuale[$k];

}


?>

potete usarle (e migliorarle) le ho fatte io
 
Ultima modifica:

Discussioni simili