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函数解决SQL injection
Dec 09 PHP
PHP 函数语法介绍一
Jun 14 PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 PHP
spl_autoload_register与autoload的区别详解
Jun 03 PHP
php采用curl实现伪造IP来源的方法
Nov 21 PHP
php 删除cookie方法详解
Dec 01 PHP
使用Appcan客户端自动更新PHP版本号(全)
Jul 31 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
总结一些PHP中好用但又容易忽略的小知识
Jun 02 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
php+redis实现商城秒杀功能
Nov 19 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与SQL注入攻击[二]
2007/04/17 PHP
php比较多维数组中值的大小排序实现代码
2012/09/08 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
js实现鼠标点击左上角滑动菜单效果代码
2015/09/06 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
jQuery Mobile和HTML5开发App推广注册页
2016/11/07 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
JavaScript获取ul中li个数的方法
2017/02/13 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
简单实现python爬虫功能
2015/12/31 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
Python读取实时数据流示例
2019/12/02 Python
考博自荐信
2013/10/25 职场文书
护理个人求职信范文
2014/01/08 职场文书
试用期转正鉴定评语
2014/01/27 职场文书
优秀教师的感人事迹
2014/02/04 职场文书
一分钟演讲稿
2014/04/30 职场文书
三下乡活动心得体会
2016/01/23 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
java设计模式--三种工厂模式详解
2021/07/21 Java/Android