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完全过滤HTML,JS,CSS等标签
Jan 16 PHP
php函数之子字符串替换&amp;#65279; str_replace
Mar 23 PHP
解析php二分法查找数组是否包含某一元素
May 23 PHP
使用PHP获取当前url路径的函数以及服务器变量
Jun 29 PHP
windwos下使用php连接oracle数据库的过程分享
May 26 PHP
php实现mysql事务处理的方法
Dec 25 PHP
PHP基于单例模式编写PDO类的方法
Sep 13 PHP
PHP实现多图上传(结合uploadify插件)思路分析
Nov 30 PHP
PHP 观察者模式深入理解与应用分析
Sep 25 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
Oct 18 PHP
PHP架构及原理知识点详解
Dec 22 PHP
PHP设计模式概论【概念、分类、原则等】
May 01 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中利用XML技术构造远程服务(下)
2006/10/09 PHP
example1.php
2006/10/09 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
js实现列表按字母排序
2020/08/11 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
原生js 实现表单验证功能
2021/02/08 Javascript
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
分分钟入门python语言
2018/03/20 Python
Python堆排序原理与实现方法详解
2018/05/11 Python
python 剪切移动文件的实现代码
2018/08/02 Python
python实现五子棋游戏
2019/06/18 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
Django models文件模型变更错误解决
2020/05/11 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
大学生找工作推荐信范文
2013/11/28 职场文书
学校办公室主任职责
2013/12/27 职场文书
外企财务年会演讲稿
2014/01/03 职场文书
读书演讲主持词
2014/03/18 职场文书
酒店开业庆典策划方案
2014/05/28 职场文书
邀请函的格式
2015/01/30 职场文书
房屋质量投诉书
2015/07/02 职场文书
Python中else的三种使用场景
2021/06/16 Python