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.MVC的模板标签系统(五)
Sep 05 PHP
通过ODBC连接的SQL SERVER实例
Oct 09 PHP
如何做到多笔资料的同步
Oct 09 PHP
PHP4实际应用经验篇(2)
Oct 09 PHP
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 PHP
ThinkPHP多语言支持与多模板支持概述
Aug 22 PHP
php在线解压ZIP文件的方法
Dec 30 PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 PHP
Symfony2联合查询实现方法
Mar 18 PHP
php-fpm开启状态统计的方法详解
Jun 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
各种战术和打法的原创者
2020/03/04 星际争霸
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
php打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
2019/07/24 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
2015/04/13 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
原生JavaScript之es6中Class的用法分析
2020/02/23 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
Python操作Access数据库基本步骤分析
2016/09/19 Python
Python流程控制 if else实现解析
2019/09/02 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
Python 如何在字符串中插入变量
2020/08/01 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
中学生寄语大全
2014/04/03 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
医德医风个人总结
2015/02/28 职场文书
逃课检讨书范文
2015/05/06 职场文书
军事理论课感想
2015/08/11 职场文书
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby