파이썬(Python)에는 달력과 관련된 작업을 손쉽게 처리할 수 있는 내장 모듈 calendar가 포함되어 있습니다. 이 모듈은 특정 연도의 전체 달력 출력부터 윤년 판별, 특정 월의 달력 생성까지 다양한 기능을 제공하며, 별도의 설치 과정 없이 import만 하면 바로 사용할 수 있습니다. 지금부터 실무에서 자주 활용되는 핵심 함수들을 예제와 함께 하나씩 살펴보겠습니다.
1. calendar(year, w, l, c)
이 함수는 지정한 연도의 전체 달력을 문자열 형태로 반환합니다. 각 매개변수는 다음과 같은 의미를 가집니다.
- year : 표시할 연도
- w : 날짜 열의 문자 폭
- l : 한 주당 줄 수
- c : 월과 월 사이의 열 간격
예제
import calendar
print("2014년의 달력입니다 :")
print(calendar.calendar(2014, 3, 1, 4))
실행 결과
2014년의 달력입니다 :
2014
January February March
Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun
1 2 3 4 5 1 2 1 2
6 7 8 9 10 11 12 3 4 5 6 7 8 9 3 4 5 6 7 8 9
13 14 15 16 17 18 19 10 11 12 13 14 15 16 10 11 12 13 14 15 16
20 21 22 23 24 25 26 17 18 19 20 21 22 23 17 18 19 20 21 22 23
27 28 29 30 31 24 25 26 27 28 24 25 26 27 28 29 30
31
April May June
Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun
1 2 3 4 5 6 1 2 3 4 1
7 8 9 10 11 12 13 5 6 7 8 9 10 11 2 3 4 5 6 7 8
14 15 16 17 18 19 20 12 13 14 15 16 17 18 9 10 11 12 13 14 15
21 22 23 24 25 26 27 19 20 21 22 23 24 25 16 17 18 19 20 21 22
28 29 30 26 27 28 29 30 31 23 24 25 26 27 28 29
30
July August September
Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun
1 2 3 4 5 6 1 2 3 1 2 3 4 5 6 7
7 8 9 10 11 12 13 4 5 6 7 8 9 10 8 9 10 11 12 13 14
14 15 16 17 18 19 20 11 12 13 14 15 16 17 15 16 17 18 19 20 21
21 22 23 24 25 26 27 18 19 20 21 22 23 24 22 23 24 25 26 27 28
28 29 30 31 25 26 27 28 29 30 31 29 30
October November December
Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun
1 2 3 4 5 1 2 1 2 3 4 5 6 7
6 7 8 9 10 11 12 3 4 5 6 7 8 9 8 9 10 11 12 13 14
13 14 15 16 17 18 19 10 11 12 13 14 15 16 15 16 17 18 19 20 21
20 21 22 23 24 25 26 17 18 19 20 21 22 23 22 23 24 25 26 27 28
27 28 29 30 31 24 25 26 27 28 29 30 29 30 31
2. firstweekday()
이 함수는 현재 설정된 한 주의 시작 요일을 정수 형태로 반환합니다. 기본값은 0이며, 이는 월요일(Monday)을 의미합니다.
예제
import calendar
print("달력의 시작 요일 인덱스 : ", end="")
print(calendar.firstweekday())
실행 결과
달력의 시작 요일 인덱스 : 0
3. isleap(year)
이 함수는 인자로 전달된 연도가 윤년(leap year)인지 여부를 확인합니다. 윤년이면 True, 그렇지 않으면 False를 반환합니다.
예제
import calendar
if calendar.isleap(2014):
print("해당 연도는 윤년입니다.")
else:
print("해당 연도는 윤년이 아닙니다.")
실행 결과
해당 연도는 윤년이 아닙니다.
4. leapdays(year1, year2)
이 함수는 두 인자로 지정한 기간 사이에 포함된 윤년의 개수를 계산합니다. 이때 시작 연도는 범위에 포함되고, 마지막 연도는 제외된다는 점에 유의하세요.
예제
import calendar
print("1950년부터 2000년 사이의 윤년 수 : ", end="")
print(calendar.leapdays(1950, 2000))
실행 결과
1950년부터 2000년 사이의 윤년 수 : 12
5. month(year, month, w, l)
이 함수는 지정한 연도와 월에 해당하는 달력을 문자열로 반환합니다. 매개변수는 순서대로 연도(year), 월(month), 날짜 열의 문자 폭(w), 한 주당 줄 수(l)를 의미합니다.
예제
import calendar
print("2017년 6월의 달력입니다 :")
print(calendar.month(2017, 6, 3, 1))
실행 결과
2017년 6월의 달력입니다 :
June 2017
Mon Tue Wed Thu Fri Sat Sun
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
마무리
파이썬의 calendar 모듈은 단 몇 줄의 코드로 전체 연도 달력, 특정 월의 달력, 윤년 계산 등을 손쉽게 처리할 수 있게 해주는 강력한 도구입니다. 일정 관리 프로그램, 날짜 계산기, 리포트 자동화 등 다양한 프로젝트에서 유용하게 활용할 수 있으니 위 예제들을 직접 실행해 보며 익혀보시기 바랍니다.