首页 > 开发 > PHP > 正文

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

2024-05-04 23:34:23
字体:
来源:转载
供稿:网友

这篇文章主要介绍了php准确计算复活节日期的方法,涉及php操作日期的技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了php准确计算复活节日期的方法。分享给大家供大家参考。具体如下:

 

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

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表