> 백엔드 개발 > PHP 튜토리얼 > 양력을 음력으로 변환하는 PHP 클래스

양력을 음력으로 변환하는 PHP 클래스

WBOY
풀어 주다: 2016-07-25 08:56:06
원래의
973명이 탐색했습니다.
  1. /**
  2. * 수업: 양력~음력 수업
  3. * 편집: bbs.it-home.org
  4. * /
  5. 클래스 달력{
  6. var $everyCMonth=array(
  7. 0=>array(8,0,0,0,0,0,0,0,0,0,0 , 0,29,30,7,1),
  8. 1=>배열(0,29,30,29,29,30,29,30,29,30,30,30,29,0,8 , 2),
  9. 2=>배열(0,30,29,30,29,29,30,29,30,29,30,30,30,0,9,3),
  10. 3 = >배열(5,29,30,29,30,29,29,30,29,29,30,30,29,30,10,4),
  11. 4=>배열(0,30 , 30,29,30,29,29,30,29,29,30,30,29,0,1,5),
  12. 5=>배열(0,30,30,29,30,30 , 29,29,30,29,30,29,30,0,2,6),
  13. 6=>배열(4,29,30,30,29,30,29,30,29,30 , 29,30,29,30,3,7),
  14. 7=>배열(0,29,30,29,30,29,30,30,29,30,29,30,29,0 , 4,8),
  15. 8=>배열(0,30,29,29,30,30,29,30,29,30,30,29,30,0,5,9),
  16. 9=>배열(2,29,30,29,29,30,29,30,29,30,30,30,29,30,6,10),
  17. 10=>배열(0 , 29,30,29,29,30,29,30,29,30,30,30,29,0,7,11),
  18. 11=>배열(6,30,29,30,29 , 29,30,29,29,30,30,29,30,30,8,12),
  19. 12=>배열(0,30,29,30,29,29,30,29,29 , 30,30,29,30,0,9,1),
  20. 13=>배열(0,30,30,29,30,29,29,30,29,29,30,29,30 , 0,10,2),
  21. 14=>배열(5,30,30,29,30,29,30,29,30,29,30,29,29,30,1,3),
  22. 15=>배열(0,30,29,30,30,29,30,29,30,29,30,29,30,0,2,4),
  23. 16=>배열 ( 0,29,30,29,30,29,30,30,29,30,29,30,29,0,3,5),
  24. 17=>배열(2,30,29,29 , 30,29,30,30,29,30,30,29,30,29,4,6),
  25. 18=>배열(0,30,29,29,30,29,30,29 , 30,30,29,30,30,0,5,7),
  26. 19=>배열(7,29,30,29,29,30,29,29,30,30,29,30 , 30,30,6,8),
  27. 20=>배열(0,29,30,29,29,30,29,29,30,30,29,30,30,0,7,9 ) ,
  28. 21=>배열(0,30,29,30,29,29,30,29,29,30,29,30,30,0,8,10),
  29. 22=> ; 배열(5,30,29,30,30,29,29,30,29,29,30,29,30,30,9,11),
  30. 23=>배열(0,29,30 , 30,29,30,29,30,29,29,30,29,30,0,10,12),
  31. 24=>배열(0,29,30,30,29,30,30 , 29,30,29,30,29,29,0,1,1),
  32. 25=>배열(4,30,29,30,29,30,30,29,30,30,29 , 30,29,30,2,2),
  33. 26=>배열(0,29,29,30,29,30,29,30,30,29,30,30,29,0,3 , 3),
  34. 27=>배열(0,30,29,29,30,29,30,29,30,29,30,30,30,0,4,4),
  35. 28 = >배열(2,29,30,29,29,30,29,29,30,29,30,30,30,30,5,5),
  36. 29=>배열(0,29 , 30,29,29,30,29,29,30,29,30,30,30,0,6,6),
  37. 30=>배열(6,29,30,30,29,29 , 30,29,29,30,29,30,30,29,7,7),
  38. 31=>배열(0,30,30,29,30,29,30,29,29,30 , 29,30,29,0,8,8),
  39. 32=>배열(0,30,30,30,29,30,29,30,29,29,30,29,30,0 , 9,9),
  40. 33=>배열(5,29,30,30,29,30,30,29,30,29,30,29,29,30,10,10),
  41. 34=>배열(0,29,30,29,30,30,29,30,29,30,30,29,30,0,1,11),
  42. 35=>배열(0 , 29,29,30,29,30,29,30,30,29,30,30,29,0,2,12),
  43. 36=>배열(3,30,29,29,30 , 29,29,30,30,29,30,30,30,29,3,1),
  44. 37=>배열(0,30,29,29,30,29,29,30,29 , 30,30,30,29,0,4,2),
  45. 38=>배열(7,30,30,29,29,30,29,29,30,29,30,30,29 , 30,5,3),
  46. 39=>배열(0,30,30,29,29,30,29,29,30,29,30,29,30,0,6,4),
  47. 40=>배열(0,30,30,29,30,29,30,29,29,30,29,30,29,0,7,5),
  48. 41=>배열 ( 6,30,30,29,30,30,29,30,29,29,30,29,30,29,8,6),
  49. 42=>배열(0,30,29,30 , 30,29,30,29,30,29,30,29,30,0,9,7),
  50. 43=>배열(0,29,30,29,30,29,30,30 , 29,30,29,30,29,0,10,8),
  51. 44=>배열(4,30,29,30,29,30,29,30,29,30,30,29 , 30,30,1,9),
  52. 45=>배열(0,29,29,30,29,29,30,29,30,30,30,29,30,0,2,10 ) ,
  53. 46=>배열(0,30,29,29,30,29,29,30,29,30,30,29,30,0,3,11),
  54. 47=> ; 배열(2,30,30,29,29,30,29,29,30,29,30,29,30,30,4,12),
  55. 48=>배열(0,30,29 , 30,29,30,29,29,30,29,30,29,30,0,5,1),
  56. 49=>배열(7,30,29,30,30,29,30 , 29,29,30,29,30,29,30,6,2),
  57. 50=>배열(0,29,30,30,29,30,30,29,29,30,29 , 30,29,0,7,3),
  58. 51=>배열(0,30,29,30,30,29,30,29,30,29,30,29,30,0,8 , 4),
  59. 52=>배열(5,29,30,29,30,29,30,29,30,30,29,30,29,30,9,5),
  60. 53 = >배열(0,29,30,29,29,30,30,29,30,30,29,30,29,0,10,6),
  61. 54=>배열(0,30 , 29,30,29,29,30,29,30,30,29,30,30,0,1,7),
  62. 55=>배열(3,29,30,29,30,29 , 29,30,29,30,29,30,30,30,2,8),
  63. 56=>배열(0,29,30,29,30,29,29,30,29,30 , 29,30,30,0,3,9),
  64. 57=>배열(8,30,29,30,29,30,29,29,30,29,30,29,30,29 , 4,10),
  65. 58=>배열(0,30,30,30,29,30,29,29,30,29,30,29,30,0,5,11),
  66. 59=>배열(0,29,30,30,29,30,29,30,29,30,29,30,29,0,6,12),
  67. 60=>배열(6 , 30,29,30,29,30,30,29,30,29,30,29,30,29,7,1),
  68. 61=>배열(0,30,29,30,29,30,29,30,30,29,30,29,30,0,8,2),
  69. 62=>배열(0, 29,30,29,29,30,29,30,30,29,30,30,29,0,9,3),
  70. 63=>배열(4,30,29,30,29, 29,30,29,30,29,30,30,30,29,10,4),
  71. 64=>배열(0,30,29,30,29,29,30,29,30, 29,30,30,30,0,1,5),
  72. 65=>배열(0,29,30,29,30,29,29,30,29,29,30,30,29, 0,2,6),
  73. 66=>배열(3,30,30,30,29,30,29,29,30,29,29,30,30,29,3,7),
  74. 67=>배열(0,30,30,29,30,30,29,29,30,29,30,29,30,0,4,8),
  75. 68=>배열( 7,29,30,29,30,30,29,30,29,30,29,30,29,30,5,9),
  76. 69=>배열(0,29,30,29, 30,29,30,30,29,30,29,30,29,0,6,10),
  77. 70=>배열(0,30,29,29,30,29,30,30, 29,30,30,29,30,0,7,11),
  78. 71=>배열(5,29,30,29,29,30,29,30,29,30,30,30, 29,30,8,12),
  79. 72=>배열(0,29,30,29,29,30,29,30,29,30,30,29,30,0,9,1) ,
  80. 73=>배열(0,30,29,30,29,29,30,29,29,30,30,29,30,0,10,2),
  81. 74=> 배열(4,30,30,29,30,29,29,30,29,29,30,30,29,30,1,3),
  82. 75=>배열(0,30,30, 29,30,29,29,30,29,29,30,29,30,0,2,4),
  83. 76=>배열(8,30,30,29,30,29,30, 29,30,29,29,30,29,30,3,5),
  84. 77=>배열(0,30,29,30,30,29,30,29,30,29,30, 29,29,0,4,6),
  85. 78=>배열(0,30,29,30,30,29,30,30,29,30,29,30,29,0,5, 7),
  86. 79=>배열(6,30,29,29,30,29,30,30,29,30,30,29,30,29,6,8),
  87. 80= >배열(0,30,29,29,30,29,30,29,30,30,29,30,30,0,7,9),
  88. 81=>배열(0,29, 30,29,29,30,29,29,30,30,29,30,30,0,8,10),
  89. 82=>배열(4,30,29,30,29,29, 30,29,29,30,29,30,30,30,9,11),
  90. 83=>배열(0,30,29,30,29,29,30,29,29,30, 29,30,30,0,10,12),
  91. 84=>배열(10,30,29,30,30,29,29,30,29,29,30,29,30,30, 1,1),
  92. 85=>배열(0,29,30,30,29,30,29,30,29,29,30,29,30,0,2,2),
  93. 86=>배열(0,29,30,30,29,30,30,29,30,29,30,29,29,0,3,3),
  94. 87=>배열(6, 30,29,30,29,30,30,29,30,30,29,30,29,29,4,4),
  95. 88=>배열(0,30,29,30,29, 30,29,30,30,29,30,30,29,0,5,5),
  96. 89=>배열(0,30,29,29,30,29,29,30,30, 29,30,30,30,0,6,6),
  97. 90=>배열(5,29,30,29,29,30,29,29,30,29,30,30,30, 30,7,7),
  98. 91=>배열(0,29,30,29,29,30,29,29,30,29,30,30,30,0,8,8),
  99. 92=>배열(0,29,30,30,29,29,30,29,29,30,29,30,30,0,9,9),
  100. 93=>배열( 3,29,30,30,29,30,29,30,29,29,30,29,30,29,10,10),
  101. 94=>배열(0,30,30,30, 29,30,29,30,29,29,30,29,30,0,1,11),
  102. 95=>배열(8,29,30,30,29,30,29,30, 30,29,29,30,29,30,2,12),
  103. 96=>배열(0,29,30,29,30,30,29,30,29,30,30,29, 29,0,3,1),
  104. 97=>배열(0,30,29,30,29,30,29,30,30,29,30,30,29,0,4,2) ,
  105. 98=>배열(5,30,29,29,30,29,29,30,30,29,30,30,29,30,5,3),
  106. 99=> 배열(0,30,29,29,30,29,29,30,29,30,30,30,29,0,6,4),
  107. 100=>배열(0,30,30, 29,29,30,29,29,30,29,30,30,29,0,7,5),
  108. 101=>배열(4,30,30,29,30,29,30, 29,29,30,29,30,29,30,8,6),
  109. 102=>배열(0,30,30,29,30,29,30,29,29,30,29, 30,29,0,9,7),
  110. 103=>배열(0,30,30,29,30,30,29,30,29,29,30,29,30,0,10, 8),
  111. 104=>배열(2,29,30,29,30,30,29,30,29,30,29,30,29,30,1,9),
  112. 105= >배열(0,29,30,29,30,29,30,30,29,30,29,30,29,0,2,10),
  113. 106=>배열(7,30, 29,30,29,30,29,30,29,30,30,29,30,30,3,11),
  114. 107=>배열(0,29,29,30,29,29, 30,29,30,30,30,29,30,0,4,12),
  115. 108=>배열(0,30,29,29,30,29,29,30,29,30, 30,29,30,0,5,1),
  116. 109=>배열(5,30,30,29,29,30,29,29,30,29,30,29,30,30, 6,2),
  117. 110=>배열(0,30,29,30,29,30,29,29,30,29,30,29,30,0,7,3),
  118. 111=>배열(0,30,29,30,30,29,30,29,29,30,29,30,29,0,8,4),
  119. 112=>배열(4, 30,29,30,30,29,30,29,30,29,30,29,30,29,9,5),
  120. 113=>배열(0,30,29,30,29, 30,30,29,30,29,30,29,30,0,10,6),
  121. 114=>배열(9,29,30,29,30,29,30,29,30, 30,29,30,29,30,1,7),
  122. 115=>배열(0,29,30,29,29,30,29,30,30,30,29,30,29, 0,2,8),
  123. 116=>배열(0,30,29,30,29,29,30,29,30,30,29,30,30,0,3,9),
  124. 117=>배열(6,29,30,29,30,29,29,30,29,30,29,30,30,30,4,10),
  125. 118=>배열( 0,29,30,29,30,29,29,30,29,30,29,30,30,0,5,11),
  126. 119=>배열(0,30,29,30, 29,30,29,29,30,29,29,30,30,0,6,12),
  127. 120=>배열(4,29,30,30,30,29,30,29, 29,30,29,30,29,30,7,1)
  128. );
  129. ##----------
  130. #农历天干
  131. var $mten=array("null","甲","乙","丙","丁", "戊","己","庚","辛","壬","癸"); #农历地支
  132. var $mtwelve=array("null","子(쥐)","Chou(ox)","Yin(호랑이)","卯(토끼)","Chen(용)","巳(SNAKE) ","우(말)","웨이(양)","쉔(원숭이)","너(닭)","쑤(개)","하이(돼지)"); #음력
  133. var $mmonth=array("금","정","이","삼","사","오","六","七","八","九","十" ,"11일","12일","월")
  134. var $mday=array("null","중학교 첫날","중학교 둘째 날","중학교 셋째 날 고등학교","중학교 넷째 날"," "음력 5월 5일", "음력 6일", "음력 7일", "음력 8일", "구월", "십일", "십일", "십이", "십삼", "십사", "십오", "십육", "십칠", "십팔" ", "열아홉", "스물", "스물하나", "스물둘", "스물셋", "스물넷", "스물다섯", "스물여섯", "스물일곱" ", "스물여덟", "스물아홉", "서른");#lunarday
  135. ##------------
  136. #초기값 지정
  137. #천간 및 Earthly Branches
  138. var $ten = 0; var $twelve = 0
  139. function MyPub($cYear, $cMonth, $cDay){
  140. $total = 11; 양력에서 1900년 12월 21일까지
  141. $mtotal = 0; #음력의 총 일수
  142. for ($y = 1901; $y < $cYear; $y ){
  143. $total = 365;
  144. if ($y % 4 == 0){
  145. $total ;
  146. }
  147. }
  148. #연간 월 추가
  149. 스위치($cMonth ){
  150. 사례 12:
  151. $total = 30;
  152. 사례 11:
  153. $total = 31
  154. 사례 10:
  155. $total = 30;
  156. $total = 31;
  157. 사례 8:
  158. $total = 31;
  159. 사례 7:
  160. $total = 30;
  161. 사례 6:
  162. $total = 31;
  163. 사례 5:
  164. $total = 30;
  165. 사례 4:
  166. $total = 31
  167. 사례 3:
  168. $total = 28; > $total = 31;
  169. }
  170. #현재 연도가 윤년이면 1일을 추가합니다.
  171. if ($cYear % 4 == 0 and $cMonth > 2){
  172. $ total ;
  173. }
  174. $total = $cDay - 1
  175. ##----------------
  176. #다음의 누적 일수를 사용합니다. 양력의 일수를 초과하는지 확인하는 음력
  177. for ($j = 0; $j <= 120; $j ){
  178. $i = 1; i = 1; $i <= 13; $i ){
  179. $mtotal = $this->everyCMonth[$j][$i]
  180. if ($mtotal >= $total)
  181. $flag = 1;
  182. 중단;
  183. }
  184. }
  185. if ($flag == 1){
  186. 중단
  187. }
  188. 반환 array("m" => $j, "d" => $i, "t" => $total, "n" => $mtotal)
  189. }
  190. function Cal($ 연도, $월, $일){
  191. $Par = $ this->MyPub($연도, $월, $Day)
  192. $md = $this->everyCMonth[$Par["m "]][$Par["d"]] - ($Par ["n"] - $Par["t"]);
  193. $week = ($Par["t"] 5) % 7;
  194. if ($this->everyCMonth[$Par[" m"]][0] <> 0 및 $this->everyCMonth[$Par["m"]][0] < $ Par["d"]){
  195. $mm = $Par ["d"] - 1
  196. }else{
  197. $mm = $Par["d"]
  198. }
  199. if ($Par["d"] == $this-> ;everyCMonth[$Par["d"]][0] 1 및 $this->everyCMonth[$Par["d"]][0] <> 0){
  200. $cMonth = $this- >mmonth[0].$this->mmonth[$mm] #윤달
  201. }
  202. else{
  203. $ cMonth = $this->mmonth[$mm].$this-> ;mmonth[13]
  204. }
  205. return array("연도" => $this->mten[$this-> ;everyCMonth[$Par["m"]][14]].$ this->mtwelve[$this->everyCMonth[$Par["m"]][15]], "월" => c월, "일" => $this->mday[$md ], "주" => $week)
  206. }
  207. }
  208. //호출 예시
  209. $test = 새 달력;
  210. $test-> Cal(2004, 2, 20)
  211. echo $Year["year"]."year".$Year["month"]. $Year["day"]."week".$Year["week "];
  212. ?>
  213. 코드 복사


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿