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 相关文章推荐
也谈截取首页新闻 - 范例
Oct 09 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
Apr 07 PHP
PHP 无限分类三种方式 非函数的递归调用!
Aug 26 PHP
php继承的一个应用
Sep 06 PHP
PHP应用JSON技巧讲解
Feb 03 PHP
php自动加载autoload机制示例分享
Feb 20 PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 PHP
php中实现精确设置session过期时间的方法
Jul 17 PHP
php文件缓存类汇总
Nov 21 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 PHP
基于PHP实现堆排序原理及实例详解
Jun 19 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 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
php 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
2016/07/14 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
Bootstrap模块dropdown实现下拉框响应
2016/05/22 Javascript
jquery实现拖动效果
2016/08/10 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
Python Web开发模板引擎优缺点总结
2014/05/06 Python
python中__slots__用法实例
2015/06/04 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
Python2与Python3的区别实例分析
2019/04/11 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
Python3搭建http服务器的实现代码
2020/02/11 Python
J2EE中常用的名词进行解释
2015/11/09 面试题
资产经营总监岗位职责范文
2013/12/01 职场文书
本科生职业生涯规划书范文
2014/01/21 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
经典搞笑版检讨书
2015/02/19 职场文书
学校党员干部承诺书
2015/05/04 职场文书
中国合伙人观后感
2015/06/02 职场文书
销售口号霸气押韵
2015/12/24 职场文书
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers