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将向Java靠拢
Oct 09 PHP
php的一个登录的类 [推荐]
Mar 16 PHP
如何在PHP中使用正则表达式进行查找替换
Jun 13 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
CentOS安装php v8js教程
Feb 26 PHP
php使用curl打开https网站的方法
Jun 17 PHP
php实现对象克隆的方法
Jun 20 PHP
PHP中each与list用法分析
Jan 08 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
PHP实现生成推广海报的方法详解
Mar 14 PHP
Laravel路由研究之domain解决多域名问题的方法示例
Apr 04 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
php表单提交问题的解决方法
2011/04/12 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
twig模板常用语句实例小结
2016/02/04 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
ajax 缓存 问题 requestheader
2010/08/01 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
2011/07/28 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
echart简介_动力节点Java学院整理
2017/08/11 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
js实现秒表计时器
2019/12/16 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
python取均匀不重复的随机数方式
2019/11/27 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
乌克兰在线药房:Аптека24
2019/10/30 全球购物
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
会计专业自我鉴定范文
2013/12/29 职场文书
临床护理求职信
2014/04/26 职场文书
经典团队口号大全
2014/06/21 职场文书
人大代表选举标语
2014/10/07 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
会计做账心得体会
2016/01/22 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang