Page 1 sur 1

Créer un compteur de 1/4h en 1/4h

Posté : 19 août 2005, 14:41
par mere-teresa
Je suis une quiche en maths, et donc j'ai beaucoup de mal à créer un compteur qui me fasse :

00:00 - 00:15
00:15 - 00:30
00:30 - 00:45
01:00 - 01:00
...etc.

Le souci étant de gérer le passage à l'heure d'après.
Merci de votre aide.

Posté : 19 août 2005, 14:48
par ouckileou
un truc comme ça ?
for ($heures = 0; $heures <= 23; $heures++) {
	for ($minutes = 0; $minutes <= 45; $minutes+=15) {
		echo $heures.':'.$minutes.'<br>';
	}			
}

Posté : 19 août 2005, 14:54
par mere-teresa
Presque :)
Il me faut les heures et minutes à 00 et non pas 0.
Pour le moment, j'ai un compteur :
   for($i=0;$i<96;$i++)
    {
      $quarter_hour_begin = ($i-1)/4;
      $quarter_minute_begin = ($i*15)%60;
      $quarter_hour_end = ($i/4)%24;
      $quarter_minute_end = (($i+1)*15)%60;
      $period_start = sprintf("%02d:%02d -",$quarter_hour_begin,$quarter_minute_begin);
      $period_end = sprintf(" %02d:%02d",$quarter_hour_end,$quarter_minute_end);
}
Et j'obtiens un sale truc pour le changement d'heure :
00:00 - 00:15
00:15 - 00:30
00:30 - 00:45
00:45 - 00:00
00:00 - 01:15
01:15 - 01:30
01:30 - 01:45
01:45 - 01:00
01:00 - 02:15
02:15 - 02:30
02:30 - 02:45
02:45 - 02:00
02:00 - 03:15
03:15 - 03:30
03:30 - 03:45
03:45 - 03:00

Posté : 19 août 2005, 15:04
par Ripat
J'utiliserais mktime qui gèrera le passage au lendemain et aux heures d'été/hiver avec l'option is_dst à 1 (ce dernier point à tester):
$compteur = mktime(0, 0, 0, 12, 32, 2005, 1);

for ($i = 0; $i <= 100; $i++) {
  $compteur += 15*60;
  echo date("H:i:s", $compteur),'<br />';
}

Posté : 19 août 2005, 18:16
par Cyrano
Un base sinon pour construire les heures de la journée coupée aux 1/4 d'heure:
<?php
$mn = array("00", "15", "30", "45");
$m = 0;
/* construction des lignes de 0h00 à 23h45 */
for($l = 0; $l < 96; $l++)
{
    /* Tranches horaires par quart d'heure */
    $m = ($m == 4) ? 0 : $m;
    ?>
    <p><?php echo(floor($l /4)) ?>h<sup><?php echo($mn[$m]); ?></sup></p>
<?php
    $m++;
}
?>
Je me suis servi de ça pour essayer de me construire un agenda.