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 相关文章推荐
输出控制类
Oct 09 PHP
Php中文件下载功能实现超详细流程分析
Jun 13 PHP
php集成环境xampp中apache无法启动问题解决方案
Nov 18 PHP
php 解决substr()截取中文字符乱码问题
Jul 18 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
Aug 14 PHP
php二维码生成以及下载实现
Sep 28 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
php创建多级目录与级联删除文件的方法示例
Sep 12 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
Nov 10 PHP
php中get_object_vars()在数组的实例用法
Feb 22 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中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
jsonp原理及使用
2013/10/28 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
jQuery大于号(&gt;)选择器的作用解释
2015/01/13 Javascript
jQuery链使用指南
2015/01/20 Javascript
jQuery设置指定网页元素宽度和高度的方法
2015/03/25 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
JS中使用DOM来控制HTML元素
2016/07/31 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
基于node.js之调试器详解
2017/08/22 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
Java如何调用外部Exe程序
2015/07/04 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
销售业务员岗位职责
2014/01/29 职场文书
太太口服液广告词
2014/03/20 职场文书
给小学生的新年寄语
2014/04/04 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
初中美术教学反思
2016/02/17 职场文书
如何写好活动总结
2019/06/21 职场文书