当前位置:首页 > PHP教程 > php日期 > 列表

php准确计算复活节日期的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-22 20:59:17 浏览: 评论:0 

这篇文章主要介绍了php准确计算复活节日期的方法,涉及php操作日期的技巧,非常具有实用价值,需要的朋友可以参考下,本文实例讲述了php准确计算复活节日期的方法,分享给大家供大家参考,具体如下:

  1. <?PHP 
  2. function isLeapYear( $nYEAR ) { 
  3.  if((($nYEAR % 4 == 0) AND !($nYEAR % 100 == 0)) AND ($nYEAR % 400 != 0)) 
  4.  { 
  5.   return TRUE; 
  6.  } else { 
  7.   return FALSE; 
  8.  } 
  9. function div( $a$b ){ 
  10.  return$a - ( $a % $b )) / $b
  11. function easterSunday( $nYEAR ) { 
  12.  // The function is able to calculate the date  
  13.  //of eastersunday back to the year 325, 
  14.  // but mktime() starts at 1970-01-01! 
  15.  if ( $nYEAR < 1970 ) { 
  16.   $dtEasterSunday = mktime( 1,1,1,1,1,1970 ); 
  17.  } else { 
  18.   $nGZ = ( $nYEAR % 19 ) + 1; 
  19.   $nJHD = div( $nYEAR, 100 ) + 1; 
  20.   $nKSJ = div( 3 * $nJHD, 4 ) - 12; 
  21.   $nKORR = div( 8 * $nJHD + 5, 25 ) - 5; 
  22.   $nSO = div( 5 * $nYEAR, 4 ) - $nKSJ - 10; 
  23.   $nEPAKTE = (( 11 * $nGZ + 20 + $nKORR - $nKSJ ) % 30 ); 
  24.   if (( $nEPAKTE == 25 OR $nGZ == 11 ) AND $nEPAKTE == 24 ) { 
  25.    $nEPAKTE = $nEPAKTE + 1; 
  26.   } 
  27.   $nN = 44 - $nEPAKTE
  28.   if$nN < 21 ) { 
  29.    $nN = $nN + 30; 
  30.   } 
  31.   $nN = $nN + 7 - (( $nSO + $nN ) % 7 ); 
  32.   $nN = $nN + isLeapYear( $nYEAR ); 
  33.   $nN = $nN + 59; 
  34.   $nA = isLeapYear( $nYEAR ); 
  35.   // Month 
  36.   $nNM = $nN
  37.   if ( $nNM > ( 59 + $nA )) { 
  38.    $nNM = $nNM + 2 - $nA
  39.   } 
  40.   $nNM = $nNM + 91; 
  41.   $nMONTH = div( 20 * $nNM, 611 ) - 2; 
  42.   // Day 
  43.   $nNT = $nN
  44.   $nNT = $nN
  45.   if ( $nNT > ( 59 + $nA )) { 
  46.    $nNT = $nNT + 2 - $nA
  47.   } 
  48.   $nNT = $nNT + 91; 
  49.   $nM = div( 20 * $nNT, 611 ); 
  50.   $nDAY = $nNT - div( 611 * $nM, 20 ); 
  51.   $dtEasterSunday = mktime( 0,0,0,$nMONTH,$nDAY,$nYEAR ); 
  52.  } 
  53.  return $dtEasterSunday
  54. ?>

Tags: php计算复活节日期

分享到: