<script>ec(2);</script>
class Calendar{
/**
* @desc :简单的日历类,供大家学习
* @author :Allen Wu
* @Email :wukewei00o@126.com
* @Date :2008-09-12
* @version :v1.0
*/
/*定义变量年、月、日*/
private $year,$month,$day;
/*定义数组星期并初始化*/
private $week = array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
/*定义数组月份并初始化*/
private $monthes = array("01"=>"一月",
"02"=>"二月",
"03"=>"三月",
"04"=>"四月",
"05"=>"五月",
"06"=>"六月",
"07"=>"七月",
"08"=>"八月",
"09"=>"九月",
"10"=>"十月",
"11"=>"十一月",
"12"=>"十二月"
);
function __construct(){
$year = isset($_POST['year']) ? $_POST['year'] : date('Y');
$month = isset($_POST['month']) ? $_POST['month'] : date('m');
$day = isset($_POST['day']) ? $_POST['day'] : date('d');
$this->set($year, $month, $day);
}
/**
* @desc 设置年、月、日的值
* @params String $year
* @params String $month
* @params String $day
* @return
*/
private function set($year, $month, $day){
$this->year = $year;
$this->month = $month;
$this->day = $day;
}
/**
* @desc 获取年、月、日的值并以数组形式返回
* @params Array $info
* @retrun Array
*/
function get(array $info){
$info = array('year' => $this->year,
'month'=> $this->month,
'day' => $this->day);
return $info;
}
/**
* @desc 获得指定日期的星期值
* @params String $year
* @params String $month
* @params String $day
* @return String
*/
private function getWeek($year, $month, $day){
$weekday = date("w",mktime(0,0,0,$month,$day,$year));
return $weekday;
}
/**
* 输出日历,有兴趣的可以改进!
* 其实这不是一个方法,不希望在类里出现html和样式
* 有兴趣的可以改进下!给大家起个抛砖引玉的作用
*
*/
public function out(){
$firstDay = $this->getWeek($this->year, $this->month, 1);
echo "
".
"
";
/*打印星期标头*/
for($week = 0; $week week); $week++){
echo "".$this->week[$week];
}
/*打印所有日期*/
for($tmpd = 1; $tmpd month,$this->day,$this->year)); $tmpd++){
if(strcmp($tmpd, $this->day) == 0){ //获得当前日期,做标记
$flag="bgcolor='#ff0000'";
}else{
$flag=" bgcolor='#ffffff'";
}
if($tmpd == 1){
echo " |
"; //补充打印
for($i = 0; $i
echo "";
}
}
if(strcmp($this->getWeek($this->year, $this->month, $tmpd), 0) == 0){
echo " |
$tmpd";
}else{
echo " |
$tmpd";
}
}
echo " |
";
}
}
$obj = new Calendar();
$obj->out();
?>