[JAVASCRIPT] 자바스크립트 음력, 양력 공휴일 체크 함수 만들기

가이드문구



자바스크립트 음력, 양력 공휴일 체크 함수 만들기

● 입력한 날짜가 공휴일인지 검사를 한다.

  1. /**
  2. * 입력한 날짜가 공휴일인지 검사를 한다.
  3. * 공휴일인 경우에는 경고창 후 멈춘다.
  4. * 입력형식 : 2023년 11월 21일 --> 20231121
  5. *
  6. * @param string
  7. */
  8. function isHoliday(yyyymmdd) {
  9. // 검사년도
  10. var yyyy = yyyymmdd.substring(0, 4);
  11. var holidays = new Array();
  12. // 음력 공휴일을 양력으로 바꾸어서 입력
  13. var tmp01 = lunerCalenderToSolarCalenger(yyyy + "0101"); // 음력설날
  14. var tmp02 = lunerCalenderToSolarCalenger(yyyy + "0815"); // 음력추석
  15. holidays[0] = getDateNextPre(tmp01, "pre", 1); //String(Number(tmp01) - 1); // 음력설 첫째날
  16. holidays[1] = tmp01; // 음력설 둘째날
  17. holidays[2] = getDateNextPre(tmp01, "next", 1);//Number(tmp01) + 1; // 음력설 셋째날
  18. holidays[3] = getDateNextPre(tmp02, "pre", 1);//Number(tmp02) - 1; // 추석 첫째날
  19. holidays[4] = tmp02; // 추석 둘째날
  20. holidays[5] = getDateNextPre(tmp02, "next", 1);//Number(tmp02) + 1; // 추석 셋째날
  21. holidays[6] = lunerCalenderToSolarCalenger(yyyy + "0408"); // 석가탄신일
  22. // 양력 공휴일 입력
  23. holidays[7] = yyyy + "0101"; // 양력설날
  24. holidays[8] = yyyy + "0301"; // 삼일절
  25. holidays[9] = yyyy + "0405"; // 식목일
  26. holidays[10] = yyyy + "0505"; // 어린이날
  27. holidays[11] = yyyy + "0606"; // 현충일
  28. //holidays[12] = yyyy + "0717"; // 제헌절
  29. holidays[12] = yyyy + "0815"; // 광복절
  30. holidays[13] = yyyy + "1003"; // 개천절
  31. holidays[14] = yyyy + "1225"; // 성탄절
  32. for (var i = 0; i < holidays.length; i++) {
  33. if (holidays[i] == yyyymmdd) {
  34. return true;
  35. }
  36. }
  37. }


● 음력을 양력으로 바꾸어서 반환한다.


  1. /**
  2. * 음력을 양력으로 바꾸어서 반환한다.
  3. *
  4. * @param string
  5. * return string
  6. */
  7. function lunerCalenderToSolarCalenger(input_day) {
  8. var kk = [[1, 2, 4, 1, 1, 2, 1, 2, 1, 2, 2, 1], /* 1841 */
  9. [2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1],
  10. [2, 2, 2, 1, 2, 1, 4, 1, 2, 1, 2, 1],
  11. [2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
  12. [1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1],
  13. [2, 1, 2, 1, 5, 2, 1, 2, 2, 1, 2, 1],
  14. [2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2],
  15. [1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1],
  16. [2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 2, 2],
  17. [2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2],
  18. [2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 5, 2], /* 1851 */
  19. [2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2],
  20. [2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2],
  21. [1, 2, 1, 2, 1, 2, 5, 2, 1, 2, 1, 2],
  22. [1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1],
  23. [2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2],
  24. [1, 2, 1, 1, 5, 2, 1, 2, 1, 2, 2, 2],
  25. [1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2],
  26. [2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2],
  27. [2, 1, 6, 1, 1, 2, 1, 1, 2, 1, 2, 2],
  28. [1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2], /* 1861 */
  29. [2, 1, 2, 1, 2, 2, 1, 2, 2, 3, 1, 2],
  30. [1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2],
  31. [1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1],
  32. [2, 1, 1, 2, 4, 1, 2, 2, 1, 2, 2, 1],
  33. [2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2],
  34. [1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2],
  35. [1, 2, 2, 3, 2, 1, 1, 2, 1, 2, 2, 1],
  36. [2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1],
  37. [2, 2, 2, 1, 2, 1, 2, 1, 1, 5, 2, 1],
  38. [2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2], /* 1871 */
  39. [1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2],
  40. [1, 1, 2, 1, 2, 4, 2, 1, 2, 2, 1, 2],
  41. [1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1],
  42. [2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1],
  43. [2, 2, 1, 1, 5, 1, 2, 1, 2, 2, 1, 2],
  44. [2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2],
  45. [2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1],
  46. [2, 2, 4, 2, 1, 2, 1, 1, 2, 1, 2, 1],
  47. [2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2],
  48. [1, 2, 1, 2, 1, 2, 5, 2, 2, 1, 2, 1], /* 1881 */
  49. [1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2],
  50. [1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2],
  51. [2, 1, 1, 2, 3, 2, 1, 2, 2, 1, 2, 2],
  52. [2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2],
  53. [2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2],
  54. [2, 2, 1, 5, 2, 1, 1, 2, 1, 2, 1, 2],
  55. [2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1],
  56. [2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2],
  57. [1, 5, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2],
  58. [1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2], /* 1891 */
  59. [1, 1, 2, 1, 1, 5, 2, 2, 1, 2, 2, 2],
  60. [1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2],
  61. [1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2],
  62. [2, 1, 2, 1, 5, 1, 2, 1, 2, 1, 2, 1],
  63. [2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2],
  64. [1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1],
  65. [2, 1, 5, 2, 2, 1, 2, 1, 2, 1, 2, 1],
  66. [2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2],
  67. [1, 2, 1, 1, 2, 1, 2, 5, 2, 2, 1, 2],
  68. [1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1], /* 1901 */
  69. [2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2],
  70. [1, 2, 1, 2, 3, 2, 1, 1, 2, 2, 1, 2],
  71. [2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1],
  72. [2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2],
  73. [1, 2, 2, 4, 1, 2, 1, 2, 1, 2, 1, 2],
  74. [1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1],
  75. [2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2],
  76. [1, 5, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2],
  77. [1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1],
  78. [2, 1, 2, 1, 1, 5, 1, 2, 2, 1, 2, 2], /* 1911 */
  79. [2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2],
  80. [2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2],
  81. [2, 2, 1, 2, 5, 1, 2, 1, 2, 1, 1, 2],
  82. [2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2],
  83. [1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1],
  84. [2, 3, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1],
  85. [2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2],
  86. [1, 2, 1, 1, 2, 1, 5, 2, 2, 1, 2, 2],
  87. [1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2],
  88. [2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2], /* 1921 */
  89. [2, 1, 2, 2, 3, 2, 1, 1, 2, 1, 2, 2],
  90. [1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2],
  91. [2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1],
  92. [2, 1, 2, 5, 2, 1, 2, 2, 1, 2, 1, 2],
  93. [1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1],
  94. [2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2],
  95. [1, 5, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2],
  96. [1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2],
  97. [1, 2, 2, 1, 1, 5, 1, 2, 1, 2, 2, 1],
  98. [2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1], /* 1931 */
  99. [2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2],
  100. [1, 2, 2, 1, 6, 1, 2, 1, 2, 1, 1, 2],
  101. [1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2],
  102. [1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1],
  103. [2, 1, 4, 1, 2, 1, 2, 1, 2, 2, 2, 1],
  104. [2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1],
  105. [2, 2, 1, 1, 2, 1, 4, 1, 2, 2, 1, 2],
  106. [2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2],
  107. [2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1],
  108. [2, 2, 1, 2, 2, 4, 1, 1, 2, 1, 2, 1], /* 1941 */
  109. [2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2],
  110. [1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2],
  111. [1, 1, 2, 4, 1, 2, 1, 2, 2, 1, 2, 2],
  112. [1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2],
  113. [2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2],
  114. [2, 5, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2],
  115. [2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2],
  116. [2, 2, 1, 2, 1, 2, 3, 2, 1, 2, 1, 2],
  117. [2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1],
  118. [2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2], /* 1951 */
  119. [1, 2, 1, 2, 4, 2, 1, 2, 1, 2, 1, 2],
  120. [1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2],
  121. [1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2],
  122. [2, 1, 4, 1, 1, 2, 1, 2, 1, 2, 2, 2],
  123. [1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2],
  124. [2, 1, 2, 1, 2, 1, 1, 5, 2, 1, 2, 2],
  125. [1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2],
  126. [1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1],
  127. [2, 1, 2, 1, 2, 5, 2, 1, 2, 1, 2, 1],
  128. [2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2], /* 1961 */
  129. [1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1],
  130. [2, 1, 2, 3, 2, 1, 2, 1, 2, 2, 2, 1],
  131. [2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2],
  132. [1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1],
  133. [2, 2, 5, 2, 1, 1, 2, 1, 1, 2, 2, 1],
  134. [2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2],
  135. [1, 2, 2, 1, 2, 1, 5, 2, 1, 2, 1, 2],
  136. [1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1],
  137. [2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2],
  138. [1, 2, 1, 1, 5, 2, 1, 2, 2, 2, 1, 2], /* 1971 */
  139. [1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1],
  140. [2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1],
  141. [2, 2, 1, 5, 1, 2, 1, 1, 2, 2, 1, 2],
  142. [2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2],
  143. [2, 2, 1, 2, 1, 2, 1, 5, 2, 1, 1, 2],
  144. [2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1],
  145. [2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1],
  146. [2, 1, 1, 2, 1, 6, 1, 2, 2, 1, 2, 1],
  147. [2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2],
  148. [1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2], /* 1981 */
  149. [2, 1, 2, 3, 2, 1, 1, 2, 2, 1, 2, 2],
  150. [2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2],
  151. [2, 1, 2, 2, 1, 1, 2, 1, 1, 5, 2, 2],
  152. [1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2],
  153. [1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1],
  154. [2, 1, 2, 2, 1, 5, 2, 2, 1, 2, 1, 2],
  155. [1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1],
  156. [2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2],
  157. [1, 2, 1, 1, 5, 1, 2, 1, 2, 2, 2, 2],
  158. [1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2], /* 1991 */
  159. [1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2],
  160. [1, 2, 5, 2, 1, 2, 1, 1, 2, 1, 2, 1],
  161. [2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2],
  162. [1, 2, 2, 1, 2, 2, 1, 5, 2, 1, 1, 2],
  163. [1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2],
  164. [1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1],
  165. [2, 1, 1, 2, 3, 2, 2, 1, 2, 2, 2, 1],
  166. [2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1],
  167. [2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1],
  168. [2, 2, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2], /* 2001 */
  169. [2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1],
  170. [2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2],
  171. [1, 5, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2],
  172. [1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2],
  173. [1, 1, 2, 1, 2, 1, 5, 2, 2, 1, 2, 2],
  174. [1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2],
  175. [2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2],
  176. [2, 2, 1, 1, 5, 1, 2, 1, 2, 1, 2, 2],
  177. [2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2],
  178. [2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1], /* 2011 */
  179. [2, 1, 6, 2, 1, 2, 1, 1, 2, 1, 2, 1],
  180. [2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2],
  181. [1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 1, 2],
  182. [1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2],
  183. [1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2],
  184. [2, 1, 1, 2, 3, 2, 1, 2, 1, 2, 2, 2],
  185. [1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2],
  186. [2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2],
  187. [2, 1, 2, 5, 2, 1, 1, 2, 1, 2, 1, 2],
  188. [1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1], /* 2021 */
  189. [2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2],
  190. [1, 5, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2],
  191. [1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1],
  192. [2, 1, 2, 1, 1, 5, 2, 1, 2, 2, 2, 1],
  193. [2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2],
  194. [1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2],
  195. [1, 2, 2, 1, 5, 1, 2, 1, 1, 2, 2, 1],
  196. [2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2],
  197. [1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1],
  198. [2, 1, 5, 2, 1, 2, 2, 1, 2, 1, 2, 1], /* 2031 */
  199. [2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2],
  200. [1, 2, 1, 1, 2, 1, 5, 2, 2, 2, 1, 2],
  201. [1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1],
  202. [2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2],
  203. [2, 2, 1, 2, 1, 4, 1, 1, 2, 1, 2, 2],
  204. [2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2],
  205. [2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1],
  206. [2, 2, 1, 2, 5, 2, 1, 2, 1, 2, 1, 1],
  207. [2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1],
  208. [2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2], /* 2041 */
  209. [1, 5, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2],
  210. [1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2]];
  211. var gan = new Array("甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸");
  212. var jee = new Array("子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥");
  213. var ddi = new Array("쥐", "소", "범", "토끼", "용", "뱀", "말", "양", "원숭이", "닭", "개", "돼지");
  214. var week = new Array("일", "월", "화", "수", "목", "금", "토");
  215. var md = new Array(31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  216. var year = input_day.substring(0, 4);
  217. var month = input_day.substring(4, 6);
  218. var day = input_day.substring(6, 8);
  219. // 음력에서 양력으로 변환
  220. var lyear, lmonth, lday, leapyes;
  221. var syear, smonth, sday;
  222. var mm, y1, y2, m1;
  223. var i, j, k1, k2, leap, w;
  224. var td, y;
  225. lyear = get_year(year); // 년도 check
  226. lmonth = get_month(month); // 월 check
  227. y1 = lyear - 1841;
  228. m1 = lmonth - 1;
  229. leapyes = 0;
  230. var byoonchecked = false;
  231. if (kk[y1][m1] > 2) {
  232. if (byoonchecked) {
  233. leapyes = 1;
  234. switch (kk[y1][m1]) {
  235. case 3:
  236. case 5:
  237. mm = 29;
  238. break;
  239. case 4:
  240. case 6:
  241. mm = 30;
  242. break;
  243. }
  244. } else {
  245. switch (kk[y1][m1]) {
  246. case 1:
  247. case 3:
  248. case 4:
  249. mm = 29;
  250. break;
  251. case 2:
  252. case 5:
  253. case 6:
  254. mm = 30;
  255. break;
  256. } // end of switch
  257. } // end of if
  258. } // end of if
  259. lday = get_day(day, mm);
  260. td = 0;
  261. for (i = 0; i < y1; i++) {
  262. for (j = 0; j < 12; j++) {
  263. switch (kk[i][j]) {
  264. case 1:
  265. td = td + 29;
  266. break;
  267. case 2:
  268. td = td + 30;
  269. break;
  270. case 3:
  271. td = td + 58; // 29+29
  272. break;
  273. case 4:
  274. td = td + 59; // 29+30
  275. break;
  276. case 5:
  277. td = td + 59; // 30+29
  278. break;
  279. case 6:
  280. td = td + 60; // 30+30
  281. break;
  282. } // end of switch
  283. } // end of for
  284. } // end of for
  285. for (j = 0; j < m1; j++) {
  286. switch (kk[y1][j]) {
  287. case 1:
  288. td = td + 29;
  289. break;
  290. case 2:
  291. td = td + 30;
  292. break;
  293. case 3:
  294. td = td + 58; // 29+29
  295. break;
  296. case 4:
  297. td = td + 59; // 29+30
  298. break;
  299. case 5:
  300. td = td + 59; // 30+29
  301. break;
  302. case 6:
  303. td = td + 60; // 30+30
  304. break;
  305. } // end of switch
  306. } // end of for
  307. if (leapyes == 1) {
  308. switch (kk[y1][m1]) {
  309. case 3:
  310. case 4:
  311. td = td + 29;
  312. break;
  313. case 5:
  314. case 6:
  315. td = td + 30;
  316. break;
  317. } // end of switch
  318. } // end of switch
  319. td = td + parseFloat(lday) + 22;
  320. // td : 1841 년 1 월 1 일 부터 원하는 날짜까지의 전체 날수의 합
  321. y1 = 1840;
  322. do {
  323. y1 = y1 + 1;
  324. if ((y1 % 400 == 0) || ((y1 % 100 != 0) && (y1 % 4 == 0))) {
  325. y2 = 366;
  326. }
  327. else {
  328. y2 = 365;
  329. }
  330. if (td <= y2) {
  331. break;
  332. }
  333. else {
  334. td = td - y2;
  335. }
  336. } while (1); // end do-While
  337. syear = y1;
  338. md[1] = Number(y2) - 337;
  339. m1 = 0;
  340. do {
  341. m1 = m1 + 1;
  342. if (td <= md[m1 - 1]) {
  343. break;
  344. }
  345. else {
  346. td = td - md[m1 - 1];
  347. }
  348. } while (1); // end of do-While
  349. smonth = Number(m1);
  350. sday = Number(td);
  351. // 월이 한자리인경우에는 앞에 0을 붙혀서 반환
  352. if (smonth < 10) {
  353. smonth = "0" + smonth;
  354. }
  355. // 일이 한자리인경우에는 앞에 0을 붙혀서 반환
  356. if (sday < 10) {
  357. sday = "0" + sday;
  358. }
  359. //return new String(syear + smonth + sday);
  360. return new String(String(syear) + String(smonth) + String(sday));
  361. }


● 년도검사를 한다 => 년도가 검사 범위를 벗어나면 경고창 후 멈춘다.


  1. /**
  2. * 작성일 : 2023.11.21
  3. * 년도검사를 한다.
  4. * 1841~2043년 까지만 검사가 가능하다.
  5. * 년도가 검사 범위를 벗어나면 경고창 후 멈춘다.
  6. *
  7. * @param int
  8. * @return int
  9. */
  10. function get_year(src) {
  11. if ((src < 1841) || (src > 2043)) {
  12. alert('연도 범위는 1841 ~ 2043 까지입니다.');
  13. return;
  14. } else {
  15. return src;
  16. }
  17. }


● 달이 12보다 크거나 1보다 작은지 검사한다 => 날짜가 잘못된 경우에는 경고창 후 멈춘다.

  1. /**
  2. * 달이 12보다 크거나 1보다 작은지 검사한다.
  3. * 날짜가 잘못된 경우에는 경고창 후 멈춘다.
  4. *
  5. * @param int
  6. * @return int
  7. */
  8. function get_month(src) {
  9. if ((src < 1) || (src > 12)) {
  10. alert('월 범위는 1 ~ 12 까지입니다.');
  11. return;
  12. } else {
  13. return src;
  14. }
  15. }


● 날짜가 1일보다 크고 src보다 작은 경우는 날짜를 반환한다 => 날짜가 잘못된 경우에는 경고창 후 멈춘다.

  1. /**
  2. * 날짜가 1일보다 크고 src보다 작은 경우는 날짜를 반환한다.
  3. * 날짜가 잘못된 경우에는 경고창 후 멈춘다.
  4. *
  5. * @param int
  6. * @param int
  7. * @return int
  8. */
  9. function get_day(src, day) {
  10. if ((src < 1) || (src > day)) {
  11. alert('일 범위가 틀립니다.');
  12. return;
  13. } else {
  14. return src;
  15. }
  16. }


● 날짜의 입력된 일수 만큼의 날짜 return

  1. /*
  2. * 날짜의 입력된 일수 만큼의 날짜 return
  3. * pyyyymmdd : 20231121
  4. * pgubn : pre, next
  5. * pday : 1 2
  6. * return : yyyymmdd
  7. */
  8. function getDateNextPre(pyyyymmdd, pgubn, pday) {
  9. var ndate = new Date(pyyyymmdd.substring(0, 4), pyyyymmdd.substring(4, 6), pyyyymmdd.substring(6, 8));
  10. var chkdate = new Date(pyyyymmdd.substring(0, 4), pyyyymmdd.substring(4, 6), pyyyymmdd.substring(6, 8));
  11. switch (pgubn) {
  12. case "pre":
  13. chkdate.setDate(ndate.getDate() - pday);
  14. break;
  15. case "next":
  16. chkdate.setDate(ndate.getDate() + pday);
  17. break;
  18. }
  19. //날짜포맷맞추기
  20. var szyyyymmdd = String(chkdate.getFullYear());
  21. if (String("0" + String(chkdate.getMonth())).length > 2) {
  22. szyyyymmdd = szyyyymmdd + "" + String(chkdate.getMonth());
  23. } else {
  24. szyyyymmdd = szyyyymmdd + "0" + String(chkdate.getMonth());
  25. }
  26. if (String("0" + String(chkdate.getDate())).length > 2) {
  27. szyyyymmdd = szyyyymmdd + "" + String(chkdate.getDate());
  28. } else {
  29. szyyyymmdd = szyyyymmdd + "0" + String(chkdate.getDate());
  30. }
  31. var rtnDate = szyyyymmdd;
  32. return rtnDate;
  33. }


● 사용 방법

isHoliday에 날짜 년-월-일을 입력하여 공휴일인지 true / false 값을 return 받을 수 있다.

  1. 실행 함수 : isHoliday(strDate.replace(/-/g, ""))
  2. return 값 : true / false




* 자바스크립트의 다른 글도 확인해보세요!

비밀번호 정규식 - 8자 이상의 문자열, 하나 이상 숫자, 문자, 특수문자 포함

Javascript Jquery 휴대폰번호 정규식, 자동 하이픈 입력





작성자 소개
초이 프로필
WrapUp 블로거

초이

반려견을 좋아하고, 차를 좋아하고, 여행을 좋아하고, 맛집을 찾아 즐기는 웹 개발자 입니다^^