php准确计算复活节日期的方法
本文实例讲述了php准确计算复活节日期的方法。分享给大家供大家参考。具体如下:
<?PHP
functionisLeapYear($nYEAR){
if((($nYEAR%4==0)AND!($nYEAR%100==0))AND($nYEAR%400!=0))
{
returnTRUE;
}else{
returnFALSE;
}
}
functiondiv($a,$b){
return($a-($a%$b))/$b;
}
functioneasterSunday($nYEAR){
//Thefunctionisabletocalculatethedate
//ofeastersundaybacktotheyear325,
//butmktime()startsat1970-01-01!
if($nYEAR<1970){
$dtEasterSunday=mktime(1,1,1,1,1,1970);
}else{
$nGZ=($nYEAR%19)+1;
$nJHD=div($nYEAR,100)+1;
$nKSJ=div(3*$nJHD,4)-12;
$nKORR=div(8*$nJHD+5,25)-5;
$nSO=div(5*$nYEAR,4)-$nKSJ-10;
$nEPAKTE=((11*$nGZ+20+$nKORR-$nKSJ)%30);
if(($nEPAKTE==25OR$nGZ==11)AND$nEPAKTE==24){
$nEPAKTE=$nEPAKTE+1;
}
$nN=44-$nEPAKTE;
if($nN<21){
$nN=$nN+30;
}
$nN=$nN+7-(($nSO+$nN)%7);
$nN=$nN+isLeapYear($nYEAR);
$nN=$nN+59;
$nA=isLeapYear($nYEAR);
//Month
$nNM=$nN;
if($nNM>(59+$nA)){
$nNM=$nNM+2-$nA;
}
$nNM=$nNM+91;
$nMONTH=div(20*$nNM,611)-2;
//Day
$nNT=$nN;
$nNT=$nN;
if($nNT>(59+$nA)){
$nNT=$nNT+2-$nA;
}
$nNT=$nNT+91;
$nM=div(20*$nNT,611);
$nDAY=$nNT-div(611*$nM,20);
$dtEasterSunday=mktime(0,0,0,$nMONTH,$nDAY,$nYEAR);
}
return$dtEasterSunday;
}
?>
希望本文所述对大家的php程序设计有所帮助。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下