jmaccs64 Posted July 16, 2009 Share Posted July 16, 2009 Hello all, My simple programing mind has led me to this implementation of a function. I work at a school, there are three different bell schedules one for Mon&Fri one for Tues&Thurs and one for Wed. I simply want to print on our homepage the time the current Period Ends. Here is what I have, it seems to work, but i am sure there is a way to do this with some while statements maybe even a foreach! Is there anyway someone can show me the error in my ways! Thanks in Advance! Joe <?php function getperiod(){ date_default_timezone_set('America/Chicago'); $mon_fri = array(725,810,815,900,906,921,927,1012,1018,1103,1109,1154,1200,1245,1250,1335,1340,1425); $tues_thur = array(725,813,818,907,912,1000,1005,1053,1058,1146,1151,1239,1244,1332,1337,1425); $wednesday = array(745,830,835,920,926,1011,1017,1102,1108,1153,1159,1244,1250,1335,1340,1425); $day = date('N'); $time = date('Hi'); // If it is Monday or Friday if (($day == 1) OR ($day == 5)){ if (($mon_fri[0] < $time) AND ($time < $mon_fri[1])){ echo "Period 1 ends at 8:10am";} elseif (($mon_fri[2] < $time) AND ($time < $mon_fri[3])){ echo "Period 2 ends at 9:00am";} elseif (($mon_fri[4] < $time) AND ($time < $mon_fri[5])){ echo "Period 3 ends at 9:21am";} elseif (($mon_fri[6] < $time) AND ($time < $mon_fri[7])){ echo "Period 4 ends at 10:12am";} elseif (($mon_fri[8] < $time) AND ($time < $mon_fri[9])){ echo "Period 5 ends at 11:03am";} elseif (($mon_fri[10] < $time) AND ($time < $mon_fri[11])){ echo "Period 6 ends at 11:54pm";} elseif (($mon_fri[12] < $time) AND ($time < $mon_fri[13])){ echo "Period 7 ends at 12:45pm";} elseif (($mon_fri[14] < $time) AND ($time < $mon_fri[15])){ echo "Period 8 ends at 1:35pm";} elseif (($mon_fri[16] < $time) AND ($time < $mon_fri[17])){ echo "Period 9 ends at 2:25pm";} else { echo "School Is Out!";} } // If it is Tuesday or Thurs elseif (($day == 2) OR ($day == 4)){ if (($tues_thur[0] < $time) AND ($time < $tues_thur[1])){ echo "Period 1 ends at 8:13am";} elseif (($tues_thur[2] < $time) AND ($time < $tues_thur[3])){ echo "Period 2 ends at 9:07am";} elseif (($tues_thur[4] < $time) AND ($time < $tues_thur[5])){ echo "Period 4 ends at 10:00am";} elseif (($tues_thur[6] < $time) AND ($time < $tues_thur[7])){ echo "Period 5 ends at 10:53am";} elseif (($tues_thur[8] < $time) AND ($time < $tues_thur[9])){ echo "Period 6 ends at 11:46am";} elseif (($tues_thur[10] < $time) AND ($time < $tues_thur[11])){ echo "Period 7 ends at 12:39pm";} elseif (($tues_thur[12] < $time) AND ($time < $tues_thur[13])){ echo "Period 8 ends at 1:32pm";} elseif (($tues_thur[14] < $time) AND ($time < $tues_thur[15])){ echo "Period 9 ends at 2:25pm";} else { echo "School Is Out!";} } // If it is Wednesday elseif ($day == 3){ if (($wednesday[0] < $time) AND ($time < $wednesday[1])){ echo "Period 1 ends at 8:30am";} elseif (($wednesday[2] < $time) AND ($time < $wednesday[3])){ echo "Period 2 ends at 9:20am";} elseif (($wednesday[4] < $time) AND ($time < $wednesday[5])){ echo "Period 4 ends at 10:11am";} elseif (($wednesday[6] < $time) AND ($time < $wednesday[7])){ echo "Period 5 ends at 11:02am";} elseif (($wednesday[8] < $time) AND ($time < $wednesday[9])){ echo "Period 6 ends at 11:53am";} elseif (($wednesday[10] < $time) AND ($time < $wednesday[11])){ echo "Period 7 ends at 12:44pm";} elseif (($wednesday[12] < $time) AND ($time < $wednesday[13])){ echo "Period 8 ends at 1:35pm";} elseif (($wednesday[14] < $time) AND ($time < $wednesday[15])){ echo "Period 9 ends at 2:25pm";} else { echo "School Is Out!";} } elseif (($day == 6) OR ($day == 7)){ echo "It's the weekend!";} } ?> Link to comment https://forums.phpfreaks.com/topic/166145-simplify/ Share on other sites More sharing options...
Bendude14 Posted July 16, 2009 Share Posted July 16, 2009 I did the first two for you... just wednesday left to do... <?php function getperiod() { date_default_timezone_set('America/Chicago'); $mon_fri = array(725,810,815,900,906,921,927,1012,1018,1103,1109,1154,1200,1245,1250,1335,1340,1425); $tues_thur = array(725,813,818,907,912,1000,1005,1053,1058,1146,1151,1239,1244,1332,1337,1425); $wednesday = array(745,830,835,920,926,1011,1017,1102,1108,1153,1159,1244,1250,1335,1340,1425); $day = date('N'); $time = date('Hi'); // If it is Monday or Friday if (($day == 1) OR ($day == 5)) { for($i=0; $i<count($mon_fri); $i++) { if (($mon_fri[$i] < $time) AND ($time < $mon_fri[$i+1])) { $result = "Period $i ends at $mon_fri[$i]"; } } //if we did not set a result school is out if(empty($result)) { echo "School is Out!"; } //else display it else { echo $result; } } // If it is Tuesday or Thurs elseif (($day == 2) OR ($day == 4)) { for($i=0; $i<count($tues_thur); $i++) { if (($tues_thur[$i] < $time) AND ($time < $tues_thur[$i+1])) { $result = "Period $i ends at $tues_thur[$i]"; } } if(empty($result)) { echo "School is Out!"; } else { echo $result; } } // If it is Wednesday elseif ($day == 3) { if (($wednesday[0] < $time) AND ($time < $wednesday[1])){ echo "Period 1 ends at 8:30am";} elseif (($wednesday[2] < $time) AND ($time < $wednesday[3])){ echo "Period 2 ends at 9:20am";} elseif (($wednesday[4] < $time) AND ($time < $wednesday[5])){ echo "Period 4 ends at 10:11am";} elseif (($wednesday[6] < $time) AND ($time < $wednesday[7])){ echo "Period 5 ends at 11:02am";} elseif (($wednesday[8] < $time) AND ($time < $wednesday[9])){ echo "Period 6 ends at 11:53am";} elseif (($wednesday[10] < $time) AND ($time < $wednesday[11])){ echo "Period 7 ends at 12:44pm";} elseif (($wednesday[12] < $time) AND ($time < $wednesday[13])){ echo "Period 8 ends at 1:35pm";} elseif (($wednesday[14] < $time) AND ($time < $wednesday[15])){ echo "Period 9 ends at 2:25pm";} else { echo "School Is Out!";} } elseif (($day == 6) OR ($day == 7)){ echo "It's the weekend!";} } ?> maybe you could get the students to refine it futher as a bit of home work Link to comment https://forums.phpfreaks.com/topic/166145-simplify/#findComment-876237 Share on other sites More sharing options...
Bendude14 Posted July 16, 2009 Share Posted July 16, 2009 i spotted a few mistakes so i fixed them and added wednesday in for you too.. <?php function getperiod() { date_default_timezone_set('America/Chicago'); $mon_fri = array(725,810,815,900,906,921,927,1012,1018,1103,1109,1154,1200,1245,1250,1335,1340,1425); $tues_thur = array(725,813,818,907,912,1000,1005,1053,1058,1146,1151,1239,1244,1332,1337,1425); $wednesday = array(745,830,835,920,926,1011,1017,1102,1108,1153,1159,1244,1250,1335,1340,1425); $day = date('N'); $time = date('Hi'); // If it is Monday or Friday if (($day == 1) OR ($day == 5)) { for($i=0; $i<count($mon_fri) -1; $i++) { if (($mon_fri[$i] < $time) AND ($time < $mon_fri[$i+1])) { $period = $i+1; $result = "Period $period ends at " . $mon_fri[$period]; } } //if we did not set a result school is out if(empty($result)) { echo "School is Out!"; } //else display it else { echo $result; } } // If it is Tuesday or Thurs elseif (($day == 2) OR ($day == 4)) { for($i=0; $i<count($tues_thur) -1; $i++) { if (($tues_thur[$i] < $time) AND ($time < $tues_thur[$i+1])) { $period = $i+1; $result = "Period $period ends at " . $tues_thur[$period]; } } if(empty($result)) { echo "School is Out!"; } else { echo $result; } } // If it is Wednesday elseif ($day == 3) { for($i=0; $i<count($wednesday) -1; $i++) { if (($wednesday[$i] < $time) AND ($time < $wednesday[$i+1])) { $period = $i+1; $result = "Period $period ends at " . $tues_thur[$period]; } } if(empty($result)) { echo "School is Out!"; } else { echo $result; } } elseif (($day == 6) OR ($day == 7)){ echo "It's the weekend!";} } ?> Link to comment https://forums.phpfreaks.com/topic/166145-simplify/#findComment-876251 Share on other sites More sharing options...
Andy-H Posted July 16, 2009 Share Posted July 16, 2009 Had nothing to do so I added some formatting. <?php function getperiod() { date_default_timezone_set('America/Chicago'); $mon_fri = array(725,810,815,900,906,921,927,1012,1018,1103,1109,1154,1200,1245,1250,1335,1340,1425); $tues_thur = array(725,813,818,907,912,1000,1005,1053,1058,1146,1151,1239,1244,1332,1337,1425); $wednesday = array(745,830,835,920,926,1011,1017,1102,1108,1153,1159,1244,1250,1335,1340,1425); $day = date('N'); $time = date('Hi'); // If it is Monday or Friday if (($day == 1) OR ($day == 5)) { for($i=0; $i < count($mon_fri) - 1; $i++) { if (($mon_fri[$i] <= $time) AND ($time < $mon_fri[$i+1])) { $period = $i+1; if ( strlen( $mon_fri[$period] ) == 3 ) { $end = substr($mon_fri[$period], 0, 1) . ":" . substr($mon_fri[$period], -2) . "am"; } elseif ( strlen( $mon_fri[$period] ) == 4 && substr( $mon_fri[$period], 0, 2 ) < 12 ) { $end = substr( $mon_fri[$period], 0, 2 ) . ":" . substr( $mon_fri[$period], -2 ) . "am"; } else { $end = ( substr( $mon_fri[$period], 0, 2 ) - 12 ) . ":" . substr($mon_fri[$period], -2) . "pm"; } $result = "Period $period ends at " . $end; } } //if we did not set a result school is out if(empty($result)) { echo "School is Out!"; } //else display it else { echo $result; } } // If it is Tuesday or Thurs elseif (($day == 2) OR ($day == 4)) { for($i=0; $i < count($tues_thur) - 1; $i++) { if (($tues_thur[$i] <= $time) AND ($time < $tues_thur[$i+1])) { $period = $i+1; if ( strlen( $tues_thur[$period] ) == 3 ) { $end = substr($tues_thur[$period], 0, 1) . ":" . substr($tues_thur[$period], -2) . "am"; } elseif ( strlen( $tues_thur[$period] ) == 4 && substr( $tues_thur[$period], 0, 2 ) < 12 ) { $end = substr( $tues_thur[$period], 0, 2 ) . ":" . substr( $tues_thur[$period], -2 ) . "am"; } else { $end = ( substr( $tues_thur[$period], 0, 2 ) - 12 ) . ":" . substr($tues_thur[$period], -2) . "pm"; } $result = "Period $period ends at " . $end; } } if(empty($result)) { echo "School is Out!"; } else { echo $result; } } // If it is Wednesday elseif ($day == 3) { for($i=0; $i < count($wednesday) - 1; $i++) { if (($wednesday[$i] <= $time) AND ($time < $wednesday[$i+1])) { $period = $i+1; if ( strlen( $wednesday[$period] ) == 3 ) { $end = substr($wednesday[$period], 0, 1) . ":" . substr($wednesday[$period], -2) . "am"; } elseif ( strlen( $wednesday[$period] ) == 4 && substr( $wednesday[$period], 0, 2 ) < 12 ) { $end = substr( $wednesday[$period], 0, 2 ) . ":" . substr( $wednesday[$period], -2 ) . "am"; } else { $end = ( substr( $wednesday[$period], 0, 2 ) - 12 ) . ":" . substr($wednesday[$period], -2) . "pm"; } $result = "Period $period ends at " . $end; } } if(empty($result)) { echo "School is Out!"; } else { echo $result; } } elseif (($day == 6) OR ($day == 7)) { echo "It's the weekend!"; } } ?> Link to comment https://forums.phpfreaks.com/topic/166145-simplify/#findComment-876263 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.