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 download.php实现代码 跳转到下载文件(response.redirect)
Aug 26 PHP
PHP5 面向对象(学习记录)
Dec 02 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
PHPThumb图片处理实例
May 03 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
Mac环境下php操作mysql数据库的方法分享
May 11 PHP
WordPress中用于获取文章作者与分类信息的方法整理
Dec 17 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
Apr 02 PHP
PHP简单实现数字分页功能示例
Aug 24 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
PHP中echo与print区别点整理
Mar 09 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
js面向对象之实现淘宝放大镜
2020/01/15 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
Python 代码性能优化技巧分享
2012/08/07 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
wxpython布局的实现方法
2019/11/01 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
详解Python yaml模块
2020/09/23 Python
python re的findall和finditer的区别详解
2020/11/15 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
个人担保书范文
2014/05/20 职场文书
大学应届毕业生求职信
2014/05/24 职场文书
人力资源职位说明书
2014/07/29 职场文书
学习保证书怎么写
2015/02/26 职场文书
大学生党员自我评价
2015/03/04 职场文书
服务员岗位职责范本
2015/04/09 职场文书
给朋友的赠语
2015/06/23 职场文书
环保建议书作文400字
2015/09/14 职场文书