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 相关文章推荐
Search Engine Friendly的URL设计
Oct 09 PHP
用Zend Encode编写开发PHP程序
Oct 09 PHP
完美解决dedecms中的[html][/html]和[code][/code]问题
Mar 20 PHP
PHP 数组入门教程小结
May 20 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
Jun 03 PHP
关于js与php互相传值的介绍
Jun 25 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
php计算税后工资的方法
Jul 28 PHP
PHP后端银联支付及退款实例代码
Jun 23 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
Aug 01 PHP
php 中的信号处理操作实例详解
Mar 04 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
下载文件的点击数回填
2006/10/09 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
php 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
密码框显示提示文字jquery示例
2013/08/29 Javascript
javascript实现密码验证
2015/11/10 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
详解vue中axios的封装
2018/07/18 Javascript
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
多个Vue项目部署到服务器的步骤记录
2020/10/22 Javascript
用Python实现换行符转换的脚本的教程
2015/04/16 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
Python错误的处理方法
2020/06/23 Python
了解一下python内建模块collections
2020/09/07 Python
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
三年级学生评语
2014/04/23 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
劳动模范获奖感言
2015/07/31 职场文书
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技