prev_month()); define('NEXT_MONTH', $this->next_month()); $this->events = array(); } function prev_month() { return mktime(0,0,0, (CURRENT_MONTH_N == 1 ? 12 : CURRENT_MONTH_N - 1), (checkdate((CURRENT_MONTH_N == 1 ? 12 : CURRENT_MONTH_N - 1), CURRENT_DAY, (CURRENT_MONTH_N == 1 ? CURRENT_YEAR - 1 : CURRENT_YEAR)) ? CURRENT_DAY : 1), (CURRENT_MONTH_N == 1 ? CURRENT_YEAR - 1 : CURRENT_YEAR)); } function next_month() { return mktime(0,0,0, (CURRENT_MONTH_N == 12 ? 1 : CURRENT_MONTH_N + 1), (checkdate((CURRENT_MONTH_N == 12 ? 1 : CURRENT_MONTH_N + 1) , CURRENT_DAY ,(CURRENT_MONTH_N == 12 ? CURRENT_YEAR + 1 : CURRENT_YEAR)) ? CURRENT_DAY : 1), (CURRENT_MONTH_N == 12 ? CURRENT_YEAR + 1 : CURRENT_YEAR)); } function getEvent($timestamp) { $event = NULL; if(array_key_exists($timestamp, $this->events)) $event = $this->events[$timestamp]; return $event; } function addEvent($event, $day = CURRENT_DAY, $month = CURRENT_MONTH_N, $year = CURRENT_YEAR) { $timestamp = mktime(0, 0, 0, $month, $day, $year); if(array_key_exists($timestamp, $this->events)) array_push($this->events[$timestamp], $event); else $this->events[$timestamp] = array($event); } function makeEvents() { if($events = $this->getEvent(mktime(0, 0, 0, CURRENT_MONTH_N, CURRENT_DAY, CURRENT_YEAR))) foreach($events as $event) echo $event.'
'; } function makeCalendar() { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo str_repeat('', START_DAY); $rows = 1; for($i = 1; $i <= NUM_OF_DAYS; $i++) { if($i == CURRENT_DAY) echo ''; else if($event = $this->getEvent(mktime(0, 0, 0, CURRENT_MONTH_N, $i, CURRENT_YEAR))) echo ''; else echo ''; if((($i + START_DAY) % COLUMNS) == 0 && $i != NUM_OF_DAYS) { echo ''; $rows++; } } echo str_repeat('', (COLUMNS * $rows) - (NUM_OF_DAYS + START_DAY)).'
<<'.CURRENT_MONTH_A .' - '. CURRENT_YEAR.'>>
MonTueWedThuFriSatSun
 '.$i.''.$i.''.$i.'
 
'; } } $cal = new Calendar($_GET['date']); $cal->addEvent('event 1'); $cal->addEvent('event 2', 10); $cal->addEvent('event 3', 10, 10); $cal->addEvent('event 4', 10, 10, 10); $cal->makeCalendar(); $cal->makeEvents(); ?>