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
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 PHP
apache配置虚拟主机的方法详解
Jun 17 PHP
php编写的简单页面跳转功能实现代码
Nov 27 PHP
thinkphp autoload 命名空间自定义 namespace
Jul 17 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
Jul 29 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
Dec 17 PHP
Zend Framework框架实现类似Google搜索分页效果
Nov 25 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
Apr 10 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中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
php 运算符与表达式详细介绍
2016/11/30 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
prototype Element学习笔记(Element篇三)
2008/10/26 Javascript
高性能web开发 如何加载JS,JS应该放在什么位置?
2010/05/14 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
使用console进行性能测试
2015/04/27 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
python 解析html之BeautifulSoup
2009/07/07 Python
python pytest进阶之fixture详解
2019/06/27 Python
Django 路由层URLconf的实现
2019/12/30 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
生产车间标语
2014/06/11 职场文书
环境工程专业自荐信范文
2014/06/24 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
学校光盘行动倡议书
2015/04/28 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
python某漫画app逆向
2021/03/31 Python