php实现一个日历类
2009-10-26 21:38
357 查看
<?php
date_default_timezone_set("Etc/GMT-8");
header("content-type:text/html; charset=utf-8");
/**
* 自己定义的一个生成日历的类
* @author 张伟灿<yuanfen860913@163.com>
* @version 1.0.0
*
*/
class myCalendar
{
/**
* 定义每个月多少天【不是瑞年的】
*
* @var array
*/
private $howManyDayPreMonth1=array(
1=>31,
2=>28,
3=>31,
4=>30,
5=>31,
6=>30,
7=>31,
8=>31,
9=>30,
10=>31,
11=>30,
12=>31,
);
/**
* 定义每个月多少天【瑞年的】
*
* @var array
*/
private $howManyDayPreMonth2=array(
1=>31,
2=>29,
3=>31,
4=>30,
5=>31,
6=>30,
7=>31,
8=>31,
9=>30,
10=>31,
11=>30,
12=>31,
);
/**
* 一个存放当天信息的一个数组
*
* @var array
*/
private $todayInfoArray;
/**
* 星期中文定义
*
* @var array
*/
private $weekName=array(
0=>"星期天",
1=>"星期一",
2=>"星期二",
3=>"星期三",
4=>"星期四",
5=>"星期五",
6=>"星期六"
);
/**
* 构造函数
* 初始化数组$this->todayInfoArray;
*
*/
function __construct()
{
$this->todayInfoArray=(array)getdate();
}
/**
* 判断是否是瑞年
*
* @param int $year
* @return bool
*/
function isRuiYear($year)
{
if($year%400==0 || ($year%4==0 && $year%100==0 ))
{
return true;
}
return false;
}
/**
* 得到今天详细信息的一个数组
*
* @return array
*/
function getTodayInfoArray()
{
return $this->todayInfoArray;
}
/**
* 得到今天属于哪一年
*
* @return int
*/
function getYearNow()
{
return $this->todayInfoArray['year'];
}
/**
* 得到今天属于哪一个月
*
* @return int
*/
function getMonthNow()
{
return $this->todayInfoArray['mon'];
}
/**
* 得到今天的具体日期
*
* @return int
*/
function getDayNow()
{
return $this->todayInfoArray['mday'];
}
/**
* 今天是星期几,输出的是int类型
*
* @return int
*/
function getWeekNow()
{
return $this->todayInfoArray['wday'];
}
/**
* 今天是星期几,输出的中文的星期
*
* @return String
*/
function getWeekNameNow()
{
return $this->weekName[$this->getWeekNow()];
}
/**
* 给出年月日,算出星期几
*
* @param int $year
* @param int $month
* @param int $day
* @return int
*/
function getWeekFromYearMonthDay($year,$month,$day)
{
$timeLong=mktime(0,0,0,$month,$day,$year);
$dayArray=getdate($timeLong);
$weekTheDay=$dayArray['wday'];
return $weekTheDay;
}
/**
* 给出年月日,算出是星期几,注意输出的是中文的星期几
*
* @param int $year
* @param int $month
* @param int $day
* @return int
*/
function getWeekNameFromYearMonthDay($year,$month,$day)
{
return $this->weekName[$this->getWeekFromYearMonthDay($year,$month,$day)];
}
/**
* 通过年月,输出格式化的的日期表格
*
* @param int $year
* @param int $month
* @return String
*/
function getCalendarFromYearMonth($year,$month)
{
$isRuiYear=$this->isRuiYear($year);
$yearNow=$year;
$monthNow=$month;
$howManyDayPreMonth=0;
if($isRuiYear==true)
{
$howManyDayPreMonth=$this->howManyDayPreMonth2[$monthNow];
}
else
{
$howManyDayPreMonth=$this->howManyDayPreMonth1[$monthNow];
}
$str ='<table style="border:solid 2px black;">';
$str .='<tr><th colspan="7">'.$yearNow.'年 '.$monthNow.'月</th><tr>';
$str .='<tr>';
foreach ((array)$this->weekName as $key =>$value)
{
$str .='<td>'.$value.'</td>';
}
$howWeekTheFirstDay=$this->getWeekFromYearMonthDay($yearNow,$monthNow,1);
$str .='<tr>';
$isFirstLine=true;
for ($i=0;$i<$howWeekTheFirstDay;$i++)
{
$str .='<td> </td>';
}
for ($i=1;$i<=$howManyDayPreMonth;$i++)
{
$str .='<td style="text-align:center;">'.$i.'</td>';
if(($this->getWeekFromYearMonthDay($yearNow,$monthNow,$i)+1)%7==0)
{
$str .='</tr>';
}
}
$str .='</table>';
return $str;
}
/**
* 输出当月的格式化的日期
*
* @return String
*/
function getCalendarCurrentMonth()
{
return $this->getCalendarFromYearMonth($this->getYearNow(),$this->getMonthNow());
}
/**
* 输出当年的格式化的日期
*
* @return String
*/
function getCalendarCurrentYear()
{
for($i=1;$i<=12;$i++)
{
$str .=$this->getCalendarFromYearMonth($this->getYearNow(),$i);
}
return $str;
}
}
$myCalendar=new myCalendar();
echo $myCalendar->getCalendarCurrentYear();
?>
date_default_timezone_set("Etc/GMT-8");
header("content-type:text/html; charset=utf-8");
/**
* 自己定义的一个生成日历的类
* @author 张伟灿<yuanfen860913@163.com>
* @version 1.0.0
*
*/
class myCalendar
{
/**
* 定义每个月多少天【不是瑞年的】
*
* @var array
*/
private $howManyDayPreMonth1=array(
1=>31,
2=>28,
3=>31,
4=>30,
5=>31,
6=>30,
7=>31,
8=>31,
9=>30,
10=>31,
11=>30,
12=>31,
);
/**
* 定义每个月多少天【瑞年的】
*
* @var array
*/
private $howManyDayPreMonth2=array(
1=>31,
2=>29,
3=>31,
4=>30,
5=>31,
6=>30,
7=>31,
8=>31,
9=>30,
10=>31,
11=>30,
12=>31,
);
/**
* 一个存放当天信息的一个数组
*
* @var array
*/
private $todayInfoArray;
/**
* 星期中文定义
*
* @var array
*/
private $weekName=array(
0=>"星期天",
1=>"星期一",
2=>"星期二",
3=>"星期三",
4=>"星期四",
5=>"星期五",
6=>"星期六"
);
/**
* 构造函数
* 初始化数组$this->todayInfoArray;
*
*/
function __construct()
{
$this->todayInfoArray=(array)getdate();
}
/**
* 判断是否是瑞年
*
* @param int $year
* @return bool
*/
function isRuiYear($year)
{
if($year%400==0 || ($year%4==0 && $year%100==0 ))
{
return true;
}
return false;
}
/**
* 得到今天详细信息的一个数组
*
* @return array
*/
function getTodayInfoArray()
{
return $this->todayInfoArray;
}
/**
* 得到今天属于哪一年
*
* @return int
*/
function getYearNow()
{
return $this->todayInfoArray['year'];
}
/**
* 得到今天属于哪一个月
*
* @return int
*/
function getMonthNow()
{
return $this->todayInfoArray['mon'];
}
/**
* 得到今天的具体日期
*
* @return int
*/
function getDayNow()
{
return $this->todayInfoArray['mday'];
}
/**
* 今天是星期几,输出的是int类型
*
* @return int
*/
function getWeekNow()
{
return $this->todayInfoArray['wday'];
}
/**
* 今天是星期几,输出的中文的星期
*
* @return String
*/
function getWeekNameNow()
{
return $this->weekName[$this->getWeekNow()];
}
/**
* 给出年月日,算出星期几
*
* @param int $year
* @param int $month
* @param int $day
* @return int
*/
function getWeekFromYearMonthDay($year,$month,$day)
{
$timeLong=mktime(0,0,0,$month,$day,$year);
$dayArray=getdate($timeLong);
$weekTheDay=$dayArray['wday'];
return $weekTheDay;
}
/**
* 给出年月日,算出是星期几,注意输出的是中文的星期几
*
* @param int $year
* @param int $month
* @param int $day
* @return int
*/
function getWeekNameFromYearMonthDay($year,$month,$day)
{
return $this->weekName[$this->getWeekFromYearMonthDay($year,$month,$day)];
}
/**
* 通过年月,输出格式化的的日期表格
*
* @param int $year
* @param int $month
* @return String
*/
function getCalendarFromYearMonth($year,$month)
{
$isRuiYear=$this->isRuiYear($year);
$yearNow=$year;
$monthNow=$month;
$howManyDayPreMonth=0;
if($isRuiYear==true)
{
$howManyDayPreMonth=$this->howManyDayPreMonth2[$monthNow];
}
else
{
$howManyDayPreMonth=$this->howManyDayPreMonth1[$monthNow];
}
$str ='<table style="border:solid 2px black;">';
$str .='<tr><th colspan="7">'.$yearNow.'年 '.$monthNow.'月</th><tr>';
$str .='<tr>';
foreach ((array)$this->weekName as $key =>$value)
{
$str .='<td>'.$value.'</td>';
}
$howWeekTheFirstDay=$this->getWeekFromYearMonthDay($yearNow,$monthNow,1);
$str .='<tr>';
$isFirstLine=true;
for ($i=0;$i<$howWeekTheFirstDay;$i++)
{
$str .='<td> </td>';
}
for ($i=1;$i<=$howManyDayPreMonth;$i++)
{
$str .='<td style="text-align:center;">'.$i.'</td>';
if(($this->getWeekFromYearMonthDay($yearNow,$monthNow,$i)+1)%7==0)
{
$str .='</tr>';
}
}
$str .='</table>';
return $str;
}
/**
* 输出当月的格式化的日期
*
* @return String
*/
function getCalendarCurrentMonth()
{
return $this->getCalendarFromYearMonth($this->getYearNow(),$this->getMonthNow());
}
/**
* 输出当年的格式化的日期
*
* @return String
*/
function getCalendarCurrentYear()
{
for($i=1;$i<=12;$i++)
{
$str .=$this->getCalendarFromYearMonth($this->getYearNow(),$i);
}
return $str;
}
}
$myCalendar=new myCalendar();
echo $myCalendar->getCalendarCurrentYear();
?>
相关文章推荐
- PHP实现一个日历
- php使用face++实现一个简单的人脸识别系统
- (纯转载)一个真正符合中国国情的工作流设计参考(包括PHP实现)
- 一个简单的PHP缓存思路的实现
- 自己写的一个用函数实现的日历
- php_实现一个简易的购物车
- PHP实现MVC开发: 一个简单的MVC
- PHP实现MVC开发: 一个简单的MVC
- 一个简单的php实现的MySQL数据浏览器
- 用PHP实现一个关于德州扑克算法的程序(一):发牌
- php中一个完整表单处理实现代码
- 用HTML+PHP写一个留言板来进行XSS测试&学习 第三篇(简单的过滤标签功能实现&绕过)
- php实现一个双向队
- php接口技术实现一个简单的多态应用实例
- php实现的日历程序
- 推荐一个PHP扩展 来真正实现PHP多线程的开发
- 一个用PHP实现的UBB类!
- PHP分页初探 一个最简单的PHP分页代码实现
- PHP实现MVC开发: 一个简单的MVC
- 一台linux服务器,通过apache实现,一个域名访问jsp的网站,一个域名访问php的网站