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中的时间显示
Jan 18 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
Oct 23 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
php实现删除指定目录下相关文件的方法
Oct 20 PHP
php强制运行广告的方法
Dec 01 PHP
PHP查询快递信息的方法
Mar 07 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
php导出生成word的方法
Dec 25 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
Laravel 加载第三方类库的方法
Apr 20 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
Oct 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
php定界符
2014/06/19 PHP
JS 继承实例分析
2008/11/04 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
如何调试异步加载页面里包含的js文件
2014/10/30 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
请介绍一下WSDL的文档结构
2013/03/17 面试题
餐厅经理岗位职责范本
2014/02/17 职场文书
工程采购员岗位职责
2014/03/09 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
建设工地安全标语
2014/06/07 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
中学生打架检讨书
2014/10/13 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python
python基础之文件处理知识总结
2021/05/23 Python
Redis性能监控的实现
2021/07/09 Redis
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python