function fill_out_sch($user_num, $start, $end) { $conect = connect_acc(); $date_time_s = explode(' ', $start); $date_time_e = explode(' ', $end); $date_end = $date_time_e[0]; $date = $date_time_s[0]; $specific_val = "S"; while ($date <= $date_end) { if ($date == $date_time_s[0]) { $lim_s = $date . " " . $date_time_s[1]; $lim_e = inc_day($date) . " 23:59:59"; } elseif ($date == $date_end) { $lim_s = $date . " 00:00:00"; $lim_e = inc_day($date) . " " . $date_time_e[1]; } else { $lim_s = $date . " 00:00:00"; $lim_e = inc_day($date) . " 23:59:59"; } if ($result = $conect->query("SELECT `Name`,`Start`,`End` FROM `Schedule` WHERE `User_#`='{$user_num}' AND `TYPE`='D' AND `Start`>='{$lim_s}' AND `End`<='{$lim_e}' ORDER BY 'Start' ASC")) { if ($result->num_rows == 0) { $y_m_d = explode('-', $date); $weekday = dayoftheweek($y_m_d[0], $y_m_d[1], $y_m_d[2]); $result = $conect->query("SELECT `Name`,`Start`,`End` FROM `Schedule` WHERE `User_#`='{$user_num}' AND `TYPE`='{$weekday}' ORDER BY 'Start' ASC"); } if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $ds_date_time_s = explode(' ', $row["Start"]); $ds_date_time_e = explode(' ', $row["End"]); $specific_val = $specific_val . $row["Name"] . "/" . $date . " " . $ds_date_time_s[1] . "/" . $date . " " . $ds_date_time_e[1] . "//"; } } } $specific_val = $specific_val . "||"; $date = inc_day($date); } disconnect($conect); return $specific_val; }
function algorithm_s($user_num) { $conect = connect_acc(); $array = array(); if ($result = $conect->query("SELECT * FROM `Event` WHERE `USER_#`='{$user_num}' AND (`DAY`='D' OR `DAY`='C') ORDER BY 'TIME_BEGIN' ASC")) { if ($result->num_rows > 0) { $early_date = null; while ($row = $result->fetch_assoc()) { if ($early_date < $row['TIME_BEGIN']) { $date_time_s = explode(' ', $row['TIME_BEGIN']); $date_time_e = explode(' ', $row['TIME_END']); $date_start = $date_time_s[0]; $date_end = $date_time_e[0]; while ($date_start <= $date_end) { $date_com = explode('-', $date_start); $day_week = dayoftheweek($date_com[0], $date_com[1], $date_com[2]); $early_date = $date_start . " 00:00:00"; $end_date = $date_start . " 23:59:59"; $sleep_set = false; if ($result2 = $conect->query("SELECT * FROM `Event` WHERE `USER_#`='{$user_num}' AND (`DAY`='{$day_week}' OR `DAY`='C' OR `DAY`='D' OR (`TIME_BEGIN`<='{$end_date}' AND `TIME_END`>='{$early_date}')) ORDER BY 'PRIORTY' ASC")) { if ($result2->num_rows > 0) { $list = new linked_day(); while ($row2 = $result2->fetch_assoc()) { if ($date_end . " 23:59:59" < $row2['TIME_END']) { $date_time_e = explode(' ', $row2['TIME_END']); $date_end = $date_time_e[0]; } $date_time_b = explode(' ', $row2['TIME_BEGIN']); $date_time_e = explode(' ', $row2['TIME_END']); $time_b = $date_time_b[1]; $time_e = $date_time_e[1]; if ($row2['DAY'] != "C") { if ($early_date > row2['TIME_BEGIN'] && $end_date < $row2['TIME_END']) { $list->add($row2['EVENT_NAME'], "00:00:00", "23:59:59"); } elseif ($early_date < $row2['TIME_BEGIN']) { $list->add($row2['EVENT_NAME'], "00:00:00", $time_e); $list->add($row2['EVENT_NAME'], $time_e, $row2['BUFF_END']); } elseif ($end_date < $row2['TIME_END']) { $list->add($row2['EVENT_NAME'], $row2['BUFF_BEGIN'], $time_b); $list->add($row2['EVENT_NAME'], $time_b, "23:59:59"); } else { $list->add($row2['EVENT_NAME'], $row2['BUFF_BEGIN'], $time_b); $list->add($row2['EVENT_NAME'], $time_b, $time_e); $list->add($row2['EVENT_NAME'], $time_e, $row2['BUFF_END']); } } else { if ($sleep_set == false) { $sleep_set = true; $list->sleep_insert(); } switch ($row2['EVENT_NAME']) { case 0: $study_time = "03:00:00"; break; case 3: $study_time = "01:30:00"; break; case 6: $study_time = "01:00:00"; break; default: $study_time = "00:30:00"; break; } $list->fill_time($study_time, $row2['EVENT_NAME']); } } if ($sleep_set == false) { $sleep_set = true; $list->sleep_insert(); } $list->excer_insert(); write($list, $date_start, 'D', $user_num); } } $date_start = inc_day($date_start); } } } } } disconnect($conect); }