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 相关文章推荐
source.php查看源文件
Dec 09 PHP
php mysql数据库操作类
Jun 04 PHP
提高php运行速度的一些小技巧分享
Jul 03 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
linux下安装php的memcached客户端
Aug 03 PHP
PHP中遇到的时区问题解决方法
Jul 23 PHP
PHP环境中Memcache的安装和使用
Nov 05 PHP
php自定义函数实现二维数组排序功能
Jul 20 PHP
PHP将字符串首字母大小写转换的实例
Jan 21 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
May 19 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 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学习笔记之三 数据库基本操作
2011/01/17 PHP
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
JavaScript基本对象
2007/01/11 Javascript
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
基于jquery的拖动布局插件
2011/11/25 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
Vue 实现双向绑定的四种方法
2018/03/16 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
js数据类型检测总结
2018/08/05 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
通信工程毕业生求职信
2013/11/16 职场文书
机械电子工程毕业生自荐信
2013/11/23 职场文书
工程采购员岗位职责
2014/03/09 职场文书
小学生安全责任书
2014/07/25 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
员工加薪申请报告
2015/05/15 职场文书
总经理年会致辞
2015/07/29 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python