php准确计算复活节日期的方法


Posted in PHP onApril 18, 2015

本文实例讲述了php准确计算复活节日期的方法。分享给大家供大家参考。具体如下:

<?PHP
function isLeapYear( $nYEAR ) {
 if((($nYEAR % 4 == 0) AND !($nYEAR % 100 == 0)) AND ($nYEAR % 400 != 0))
 {
  return TRUE;
 } else {
  return FALSE;
 }
}
function div( $a, $b ){
 return( $a - ( $a % $b )) / $b;
}
function easterSunday( $nYEAR ) {
 // The function is able to calculate the date 
 //of eastersunday back to the year 325,
 // but mktime() starts at 1970-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 == 25 OR $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程序设计有所帮助。

PHP 相关文章推荐
PHP制作图型计数器的例子
Oct 09 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
php仿QQ验证码的实例分析
Jul 01 PHP
php操作mysqli(示例代码)
Oct 28 PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 PHP
php中数据库连接方式pdo和mysqli对比分析
Feb 25 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 PHP
PHP常见的几种攻击方式实例小结
Apr 29 PHP
详解Laravel服务容器的绑定与解析
Nov 05 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
Apr 17 #PHP
PHP学习笔记(三):数据类型转换与常量介绍
Apr 17 #PHP
PHP学习笔记(二):变量详解
Apr 17 #PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
Apr 17 #PHP
php递归遍历删除文件的方法
Apr 17 #PHP
php关联数组快速排序的方法
Apr 17 #PHP
php实现对两个数组进行减法操作的方法
Apr 17 #PHP
You might like
农民C键的运用技巧
2020/03/04 星际争霸
JAVA/JSP学习系列之四
2006/10/09 PHP
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
2020/02/12 PHP
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
火狐下input焦点无法重复获取问题的解决方法
2014/06/16 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
2018/07/02 Javascript
简述vue路由打开一个新的窗口的方法
2018/11/29 Javascript
微信小程序一周时间表功能实现
2019/10/17 Javascript
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
selenium 安装与chromedriver安装的方法步骤
2019/06/12 Python
Python实现某论坛自动签到功能
2019/08/20 Python
对python中UDP,socket的使用详解
2019/08/22 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
土木工程实习生自我鉴定
2013/09/19 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
岗位职责风险点
2014/03/12 职场文书
健康教育评估方案
2014/05/25 职场文书
爱护公共设施的标语
2014/06/24 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
班主任工作实习计划
2015/01/16 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
会议营销主持词
2015/07/03 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
Python pandas之求和运算和非空值个数统计
2021/08/07 Python