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 相关文章推荐
使用sockets:从新闻组中获取文章(三)
Oct 09 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
基于PHP开发中的安全防范知识详解
Jun 06 PHP
解析PHP中ob_start()函数的用法
Jun 24 PHP
php ci框架验证码实例分析
Jun 26 PHP
递归删除一个节点以及该节点下的所有节点示例
Mar 19 PHP
php获取CSS文件中图片地址并下载到本地的方法
Dec 02 PHP
PHP 正则表达式小结
Feb 12 PHP
php数组随机排序实现方法
Jun 13 PHP
PHP中file_exists使用中遇到的问题小结
Apr 05 PHP
php 中htmlentities导致中文无法查询问题
Sep 10 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 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的远程图片抓取函数分享
2013/09/25 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
zf框架db类的分页示例分享
2014/03/14 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
js删除局部变量的实现方法
2016/06/25 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
vue图片上传组件使用详解
2019/12/23 Javascript
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
Python程序员开发中常犯的10个错误
2014/07/07 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
python实现kMeans算法
2017/12/21 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
什么是事务?为什么需要事务?
2012/01/09 面试题
介绍一下你对SOA的认识
2016/04/24 面试题
农田水利实习自我鉴定
2013/09/19 职场文书
一年级班主任寄语
2014/01/19 职场文书
天网工程实施方案
2014/03/26 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书