rendered paste body<?phpclass Calendar{ var $startDay = 1; // 1=Monday, 2=Tueday .... 7=Sunday var $showMonday = true; var $showTuesday = true; var $showWednesday = true; var $showThursday = true; var $showFriday = true; var $showSaturday = true; var $showSunday = true; // Which days will be showed var $daysName = array(1=>"Mandag",2=>"Tirsdag",3=>"Onsdag",4=>"Torsdag",5=>"Fredag",6=>"Lørdag",7=>"Søndag"); var $monthsName = array(1=>"Januar",2=>"Februar",3=>"Marts",4=>"April",5=>"Maj",7=>"Juni",8=>"Juli",9=>"August",10=>"September",11=>"November",12=>"December"); // Names for days and months // Days is 1=Monday to 7=Sunday var $css_th_dayname = "dayname"; var $css_th_subject = "subject"; var $css_th_empty = "notused"; var $css_file = "stylesheet.css"; var $css_td_weeknumber = "weeknumber"; var $css_td_today = "today"; var $css_td_lastmonth = "lastmonth"; var $css_td_nextmonth = "nextmonth"; var $css_td_date = "date"; var $css_table = "table"; var $css_tr = "tr"; // Stylesheets var $lineFormat = false; // Show dates in a line or in a table var $dateFormat_month = "m"; var $dateFormat_day = "d"; var $dateFormat_year = "Y"; var $dateFormat_between = "-"; // Date format var $showWeekNumber = true; var $showSubject = true; // Show settings var $setDoctype = true; // Show FULL html (with header and body) var $strict_doctype = true; // TRUE = XHTML 1.0 strict, FALSE = HTML 4.1 // Doctype and show var $_daysPrRow = 0; var $_selected_year; var $_selected_month; var $_selected_day; // Private vars function Calendar($month=false,$day=false,$year=false) { if(!$month) $this->_selected_month=date("n"); else $this->_selected_month=$month; if(!$year) $this->_selected_year=date("Y"); else $this->_selected_year=$year; if(!$day) $this->_selected_day=date("j"); else $this->_selected_day=$day; } function _isToday($day,$month,$year) { list($d,$m,$y) = explode("-",date("j-n-Y")); if($d==$day && $m==$month && $y==$year) return true; else return false; } function _setDaysPrRow() { $i=1; while ($i<8) { if($this->_showDay($i)) $this->_daysPrRow++; $i++; } if($this->lineFormat) $this->_daysPrRow=1; } function _getDaysName($daynumber) { return $this->daysName[$daynumber]; } function _getMonthsName($monthnumber) { return $this->monthsName[$monthnumber]; } function _getWeekNumber($day,$month,$year) { return date("W",mktime(0,0,0,$month,$day,$year)); } function _getStartDayInMonth($month,$year) { return 7-((7-date("w",mktime(0,0,0,$month,1,$year)))%(7+date("w",mktime(0,0,0,$month,1,$year)))); } function _getNumberofDaysInMonth($month,$year) { return date("t",mktime(0,0,0,$month,1,$year)); } function _getNumberofDaysInLastMonth($month,$year) { return date("t",mktime(0,0,0,$month,1,$year)); } function _showDay($daynumber) { switch($daynumber) { case 1: return $this->showMonday; break; case 2: return $this->showTuesday; break; case 3: return $this->showWednesday; break; case 4: return $this->showThursday; break; case 5: return $this->showFriday; break; case 6: return $this->showSaturday; break; case 7: return $this->showSunday; break; default: return false; break; } } function getCalendar($title="") { $this->_setDaysPrRow(); $html = ""; if($this->setDoctype) { if($this->strict_doctype) $html .= "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"; else $html .= "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n"; $html .= "<html>\n"; $html .= "<head>\n"; $html .= "\t<link href=\"".$this->css_file."\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\"".($this->strict_doctype?" /":"").">\n"; $html .= "\t<title>".$title."</title>\n"; $html .= "</head>\n\n"; $html .= "<body>\n"; } $html .= "<table class='".$this->css_table."'>\n"; if($this->showSubject) { $html .= "\t<tr>\n"; $html .= "\t\t<th colspan='".($this->showWeekNumber?$this->_daysPrRow+1:$this->_daysPrRow)."' class='".$this->css_th_subject."'>".date($this->dateFormat.$this->dateFormat_month.$this->dateFormat_between.$this->dateFormat_year,mktime(0,0,0,$this->_selected_month,1,$this->_selected_year))."</th>\n"; $html .= "\t</tr>\n"; } // START DAYNAME BOXES $start=$this->startDay; $firstRun = true; $end=false; $html .= "\t<!-- START DAYNAME BOXES -->\n"; $html .= "\t<tr>\n"; if($this->showWeekNumber) $html .= "\t\t<th class='".$this->css_th_empty."'> </th>\n"; while(1) { if($start>=8) $start=1; if(!$firstRun) if($start==$this->startDay) break; if($this->_showDay($start)) $html .= "\t\t<th class='".$this->css_th."'>".$this->_getDaysName($start)."</th>\n"; $firstRun=false; $start++; } $html .= "\t</tr>\n"; $html .= "\t<!-- END DAYNAME BOXES -->\n\n"; // END DAYNAME BOXES // START LAST MONTH DAYS $start=$this->startDay; $startDay=$this->_getStartDayInMonth($this->_selected_month,$this->_selected_year); $lastMonth=$this->_getNumberofDaysInLastMonth($this->_selected_month-1,$this->_selected_year)+1; if($start!=$startDay) { while (1) { if($start==$startDay) break; $lastMonth--; $start++; } } $start=$this->startDay; $startDay=$this->_getStartDayInMonth($this->_selected_month,$this->_selected_year); $html .= "<!-- START LAST MONTH DAYS -->\n"; if($start!=$startDay) { $html .= "\t<tr>\n"; if($this->showWeekNumber) $html .= "\t\t<td class='".$this->css_td_weeknumber."'>".$this->_getWeekNumber(1,$this->_selected_month,$this->_selected_year)."</td>\n"; $rowCounter = 1; while(1) { if($start==$startDay) break; $html .= "\t\t<td class='".$this->css_td_lastmonth."'>".$lastMonth."</td>\n"; $start++; $lastMonth++; } } $html .= "<!-- END LAST MONTH DAYS -->\n"; // END LAST MONTH DAYS // START THIS MONTH DAYS $html .= "<!-- START THIS MONTH DAYS -->\n"; $dato = 1; while ($dato<=$this->_getNumberofDaysInMonth($this->_selected_month,$this->_selected_year)) { if($start>7 || $start==1) { $start=1; $html .= "\t<tr>\n"; if($this->showWeekNumber) $html .= "\t\t<td class='".$this->css_td_weeknumber."'>".$this->_getWeekNumber($dato,$this->_selected_month,$this->_selected_year)."</td>\n"; } if($this->_showDay($start)) $html .= "\t\t<td class='".($this->_isToday($dato,$this->_selected_month,$this->_selected_year)?$this->css_td_today:$this->css_td_date)."'>".$dato."</td>\n"; if($start==7) $html .= "\t</tr>\n"; $start++; $dato++; } $html .= "<!-- END THIS MONTH DAYS -->\n"; // END THIS MONTH DAYS // START NEXT MONTH DAYS $nextmonth = 1; $html .= "<!-- START NEXT MONTH DAYS -->\n"; if($start<8) { while($start<8) { if($this->_showDay($start)) $html .= "\t\t<td class='".$this->css_td_notused."'>".$nextmonth."</td>\n"; $start++; $nextmonth++; } $html .= "\t</tr>\n"; $html .= "<!-- END NEXT MONTH DAYS -->\n"; } // END NEXT MONTH DAYS $html .= "</table>\n"; if($this->setDoctype) $html .= "</body>\n</html>"; return $html; } function getLastMonth() { $month = $this->_selected_month-1; switch ($month) { case 0: $year = $this->_selected_year-1; $month=12; break; default: $year = $this->_selected_year; break; } return "?selMonth=".$month."&selYear=".$year; } function getNextMonth() { $month = $this->_selected_month+1; switch ($month) { case 13: $year = $this->_selected_year+1; $month = 1; break; default: $year = $this->_selected_year; break; } return "?selMonth=".$month."&selYear=".$year; }}$calendar = new Calendar($_GET["selMonth"],false,$_GET["selYear"]);$calendar->setDoctype=false;echo $calendar->getCalendar();echo "<br /><br /><br />";echo "<a href='".$calendar->getLastMonth()."'> << </a>";echo " ";echo " ";echo " ";echo "<a href='".$calendar->getNextMonth()."'> >> </a>";?>