28. april 2005 - 12:41Der er
1 kommentar og 2 løsninger
Skoleskema problemer - næste time.
Hejsa. Jeg sidder og er ved at lave en side hvor jeg har lavet mit skoleskema. Jeg har så arbejdet lidt på at få lavet så at jeg kan se hvilken time jeg har nu og hvilken der er næste gang. Det er ikke så svært med den første del, altså denne time. Men det er næste time som driller mig.
Hvis jeg har dansk i de to første timer og så en fri time og så der efter en kemi, så skal den ikke skrive Denne time: 08:50 - 09:35 Dansk Næste time: 09:50 - 10:35 Fri men Denne time: 08:50 - 09:35 Dansk Næste time: 10:40 - 11:25 Kemi
Jeg har valgt at fjerne alt hvad jeg havde, da det var en gang lort jeg havde fået lavet, så jeg har valgt at starte forfra på koden, dog mener jeg at følgende funtioner kan bruges
function ft($k = 0){ global $row,$dag; $v = $dag + $k; if($v < 1) {$v = 5;} if($v > 5) {$v = 1;} for($b=9;$b>0;$b--) { if ($row["time-".$v."-".$b] != "Fri") { $n = $b; } } return $n; } Denne funtion finder første time på dagen, hvis ft() kaldes så returneres dagens første time, hvis ft(1) så er det morgendagens første time og ft(-1) dagen før, osv.
function st($k = 0) { global $row,$dag; $v = $dag + $k; if($v < 1) {$v = 5;} if($v > 5) {$v = 1;} for($b=1;$b<=9;$b++) { if ($row["time-".$v."-".$b] != "Fri") { $n = $b; } } return $n; } Denne funtion finder sidste time på dagen, hvis st() kaldes så returneres dagens sidste time, hvis st(1) så er det morgendagens sidste time og ft(-1) dagen før, osv.
function nt($k) { global $row,$dag; for($b=$k+1;$b<=9;$b++) { if ($row["time-".$dag."-".$b] != "Fri" && !isset($n)) { $n = $b; } } return $n; } Denne funktion har jeg lige lavet. Hvis nuværende time er 2(dansk) så vil nt(2) returnere 4(kemi) og ikke 3 som er en fri(time)
arrayet $start indeholder alle de tidpunkter timerne starter, i formatet unixtime arrayet $slut indeholder alle de tidpunkter timerne slutter, i formatet unixtime så $start[1] vil returnere 08:00 i unix tid.
her er starttidspunkterne på mit skema og hvordan en af mine dage ser ud 08:00 - 08:45 Matematik 08:50 - 09:35 Matematik 10:10 - 10:35 Samfundsfag 10:45 - 11:30 Fri 11:55 - 12:40 Teknologi 12:45 - 13:30 Kemi 13:40 - 14:25 Fysik 14:30 - 15:15 Fysik 15:25 - 16:10 Fri
Håber i kan hjælpe mig på vej
if ($nu < $start[$ft]) { her ved jeg hvad skal være } elseif ($nu > $slut[$st]) { her ved jeg også hvad skal være } else { her er jeg lidt lost }
Jeg er ikke super haj til php Men hvorfor ikke hive dagenes timer ud i et array, og start og slut tider og så sammenligne pseudo kode: -- if ($nu < $start[0]){ echo "Ingen timer nu, næste time $start[1] - $slut[1] $time[1]"; }elseif ($nu > $slut[9]){ echo "Ingen timer nu, og der er ikke flere timer idag weee"; }else{ for($a=0;$a<9;$a++) { if($start[a] <= $nu && $nu <= $slut[a]){ if($time[a] == "Fri"){ echo "Lige nu har jeg fritime"; }else{ echo "Lige nu har jeg $time[a]"; } for($b=$a;$b<9;$b++){ if($time[b] != "Fri"){ echo "og min næste time er $start[b] - slut[b] $time[b]"; exit(); }elseif($b == 8){ echo "og jeg har ikke flere timer idag"; exit(); } } } } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.