파이썬(Python)의 calendar 모듈은 달력과 관련된 다양한 기능을 제공하는 표준 라이브러리입니다. 이 모듈을 활용하면 특정 연도나 월에 해당하는 텍스트 형태의 달력을 손쉽게 출력할 수 있으며, 윤년 판별, 요일 계산 등 날짜 관련 작업도 간편하게 처리할 수 있습니다.
calendar 모듈의 기본 설정
calendar 모듈은 기본적으로 월요일을 한 주의 시작으로, 일요일을 마지막 요일로 설정합니다. 만약 이 설정을 변경하고 싶다면 calendar.setfirstweekday() 함수를 호출하여 한 주의 시작 요일을 원하는 대로 지정할 수 있습니다.
아래는 calendar 모듈에서 제공하는 주요 함수들을 정리한 표입니다.
calendar 모듈의 주요 함수 목록
| 번호 | 함수 및 설명 |
|---|---|
| 1 | calendar.calendar(year, w=2, l=1, c=6) 지정한 연도 전체의 달력을 여러 줄의 문자열로 반환합니다. 달력은 c개의 공백으로 구분된 세 개의 열로 구성되며, w는 각 날짜의 문자 폭, l은 각 주당 줄 수를 의미합니다. |
| 2 | calendar.firstweekday() 현재 설정된 한 주의 시작 요일을 반환합니다. 모듈을 처음 임포트했을 때의 기본값은 0으로, 월요일을 의미합니다. |
| 3 | calendar.isleap(year) 지정한 연도가 윤년이면 True를, 그렇지 않으면 False를 반환합니다. |
| 4 | calendar.leapdays(y1, y2) y1부터 y2 범위(range(y1, y2)) 내에 포함된 연도들 중 윤년인 해의 총 개수를 반환합니다. |
| 5 | calendar.month(year, month, w=2, l=1) 지정한 연도와 월의 달력을 여러 줄의 문자열로 반환합니다. 각 주가 한 줄을 차지하며 헤더 두 줄이 추가됩니다. w는 각 날짜의 문자 폭, l은 각 주당 줄 수입니다. |
| 6 | calendar.monthcalendar(year, month) 정수 리스트들의 리스트를 반환합니다. 각 하위 리스트는 한 주를 나타내며, 해당 월에 속하지 않는 날짜는 0으로, 속하는 날짜는 실제 일자(1 이상)로 표시됩니다. |
| 7 | calendar.monthrange(year, month) 두 개의 정수를 반환합니다. 첫 번째 값은 해당 월 첫날의 요일 코드(0=월요일 ~ 6=일요일), 두 번째 값은 그 달의 총 일수입니다. 월은 1부터 12까지의 숫자로 지정합니다. |
| 8 | calendar.prcal(year, w=2, l=1, c=6)print(calendar.calendar(year, w, l, c))와 동일하게 연간 달력을 직접 출력합니다. |
| 9 | calendar.prmonth(year, month, w=2, l=1)print(calendar.month(year, month, w, l))와 동일하게 월간 달력을 직접 출력합니다. |
| 10 | calendar.setfirstweekday(weekday) 한 주의 시작 요일을 지정한 요일 코드로 설정합니다. 요일 코드는 0(월요일)부터 6(일요일)까지입니다. |
| 11 | calendar.timegm(tupletime)time.gmtime()의 역함수입니다. 타임 튜플 형태의 시각 정보를 받아 에포크(epoch, 1970년 1월 1일) 이후 경과한 초 단위의 부동소수점 숫자로 변환하여 반환합니다. |
| 12 | calendar.weekday(year, month, day) 지정한 날짜의 요일 코드를 반환합니다. 요일 코드는 0(월요일)부터 6(일요일)까지이며, 월은 1(1월)부터 12(12월)까지의 숫자입니다. |
마무리
calendar 모듈은 별도의 외부 라이브러리 설치 없이 파이썬 기본 환경에서 바로 사용할 수 있어 매우 편리합니다. 달력 출력이 필요한 CLI 도구, 스케줄러, 날짜 계산 로직 등을 개발할 때 이 모듈의 함수들을 적극적으로 활용해 보시기 바랍니다.