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完整的日历类(CLASS)
Nov 27 PHP
PHP 检查扩展库或函数是否可用的代码
Apr 06 PHP
php设计模式之单例、多例设计模式的应用分析
Jun 30 PHP
codeigniter自带数据库类使用方法说明
Mar 25 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
Oct 10 PHP
PHP静态成员变量和非静态成员变量详解
Feb 14 PHP
ThinkPHP 3.2.2实现事务操作的方法
May 05 PHP
PHP多进程编程实例详解
Jul 19 PHP
基于php数组中的索引数组和关联数组详解
Mar 12 PHP
php 使用 __call实现重载功能示例
Nov 18 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
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
PHP实现根据设备类型自动跳转相应页面的方法
2014/07/24 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
文本加密解密
2006/06/23 Javascript
javascript sudoku 数独智力游戏生成代码
2010/03/27 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
JavaScript 模块化编程(笔记)
2015/04/08 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
使用canvas进行图像编辑的实例
2017/08/29 Javascript
webpack4.0打包优化策略整理小结
2018/03/30 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
分析在Python中何种情况下需要使用断言
2015/04/01 Python
详解Python中的array数组模块相关使用
2016/07/05 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
Python工程师面试必备25条知识点
2018/01/17 Python
解决python os.mkdir创建目录失败的问题
2018/10/16 Python
Python类和对象的定义与实际应用案例分析
2018/12/27 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
tensorflow 实现数据类型转换
2020/02/17 Python
老干部工作先进事迹
2014/08/17 职场文书
党员承诺书范文2015
2015/04/27 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书