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中数组元素升序、降序以及重新排序的函数
Jun 20 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
Jul 04 PHP
php获取本周开始日期和结束日期的方法
Mar 09 PHP
简单谈谈PHP vs Node.js
Jul 17 PHP
PHP实现批量修改文件后缀名的方法
Jul 30 PHP
PHP MPDF中文乱码的解决方式
Dec 08 PHP
php字符串的替换,分割和连接方法
May 23 PHP
Yii框架中jquery表单验证插件用法示例
Oct 18 PHP
PHP 年月日的三级联动实例代码
May 24 PHP
基于php编程规范(详解)
Aug 17 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 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 DataGrid 实现代码
2009/08/12 PHP
php牛逼的面试题分享
2013/01/18 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
基于JQuery的日期联动实现代码
2011/02/24 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
jquery中添加属性和删除属性
2015/06/03 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
JS 对象(Object)和字符串(String)互转方法
2016/05/20 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
2016/08/11 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
Vue.js用法详解
2017/11/13 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
Python写的Socks5协议代理服务器
2014/08/06 Python
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
简述Python2与Python3的不同点
2018/01/21 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
三维科技面试题
2013/07/27 面试题
致标枪运动员广播稿
2014/02/06 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
家长对孩子的寄语
2015/02/26 职场文书
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js