Java – 공휴일 계산

얼마전 수행한 프로젝트에서 작업 스케쥴링을 위해 휴일 계산이 필요하게 되었습니다.
아래의 코드는 양력 휴일 / 음력 휴일 / 대체 공휴일 / 토요일 / 일요일을 계산하여, 업무를 수행하는 날짜인지 체크할때 사용하였습니다.
참고로 대체 공휴일의 정의는 아래와 같습니다.

법정공휴일은 ‘관공서의 공휴일에 관한 규정'(대통령령)에 의해 공휴일이 된 날을 말한다.
법령에 따르면 법정공휴일은 일요일, 국경일, 1월 1일, 음력 1월 1일(설날)과 전후 이틀, 석가탄신일(음력 4월 8일),
어린이날(5월 5일), 현충일(6월 6일), 음력 8월 15일(추석)과 전후 이틀, 성탄절(12월 25일),
보궐선거를 제외한 각종 선거투표일 등 정부에서 수시로 정하는 날 등이다.
국경일은 ‘국경일에 관한 법률’에 의한 3ㆍ1절, 제헌절, 광복절, 개천절, 한글날을 말한다.

대체공휴일제의 도입 (안 제3조)
– 설날, 추석 연휴가 다른 공휴일과 겹치는 경우 그 날 다음의 첫 번째 비공휴일을 공휴일로 함
– 어린이날이 토요일 또는 다른 공휴일과 겹치는 경우 그 날 다음의 첫 번째 비공휴일을 공휴일로 함
(어린이날 외의 토요일은 대체공휴일에 포함되지 않습니다)

음력날짜는 ICU(International Components for Unicode)를 사용하였습니다.
관련 라이브러리는 https://sites.google.com/site/icusite/ 에서 다운로드할 수 있습니다.
대체 공휴일의 경우 길게 작성됐는데.. 실제로 발생하는 대체공휴일이 많지 않아서 그냥 하드코딩 하였습니다..

 

CC BY-NC-ND 2.0 KR

이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다. 크리에이티브 커먼즈 라이선스

저작권과 관련된 파일요청 및 작업요청을 받지 않습니다.

4 댓글

댓글 남기기