Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python calendar 모듈 완벽 가이드: firstweekday(), leapdays(), HTMLCalendar() 사용법

날짜와 시간을 다루는 기능은 모든 프로그래밍 언어에서 필수적입니다. 파이썬은 별도의 설치 없이 바로 사용할 수 있는 내장 calendar 모듈을 제공하며, 이를 통해 달력 생성, 윤년 계산, 요일 확인 등 다양한 날짜 관련 작업을 손쉽게 처리할 수 있습니다. 이번 글에서는 calendar 모듈에서 자주 사용되는 핵심 함수들을 예제 코드와 함께 살펴보겠습니다.

1. firstweekday() – 한 주의 시작 요일 확인

firstweekday() 함수는 현재 설정된 한 주의 첫 번째 요일에 해당하는 숫자를 반환합니다. 파이썬에서는 월요일이 0, 화요일이 1로 표현되며, 아무 설정도 하지 않으면 기본값인 0(월요일)이 출력됩니다.

예제 코드

import calendar

# 한 주의 시작 요일 번호 출력
print("달력에서 첫 번째 요일의 번호는 : ")
print(calendar.firstweekday())

실행 결과

달력에서 첫 번째 요일의 번호는 :
0

만약 한 주의 시작 요일을 변경하고 싶다면 calendar.setfirstweekday() 함수를 사용하면 됩니다.

2. leapdays(시작연도, 끝연도) – 윤일 개수 계산

leapdays() 함수는 두 연도 사이에 포함된 윤일(2월 29일)의 개수를 계산해 줍니다. 윤년 판단 로직을 직접 구현할 필요 없이 간단하게 결과를 얻을 수 있어 유용합니다.

예제 코드

import calendar
print("1980년부터 2015년 사이의 윤일 개수:")
print(calendar.leapdays(1980, 2015))

실행 결과

1980년부터 2015년 사이의 윤일 개수:
9

위 결과에서 알 수 있듯이 1980년부터 2015년까지 총 9번의 윤일이 존재합니다.

3. HTMLCalendar – HTML 형식의 달력 생성

HTMLCalendar 클래스는 특정 월의 달력을 HTML 테이블 형식으로 만들어 줍니다. 클래스 생성 시 인자로 한 주의 시작 요일을 지정할 수 있으며, 아래 예제에서는 calendar.TUESDAY(화요일)를 시작 요일로 설정했습니다. 생성된 HTML을 웹 페이지에 그대로 삽입하면 스타일링된 달력을 손쉽게 표시할 수 있습니다.

예제 코드

import calendar
hc = calendar.HTMLCalendar(calendar.TUESDAY)
a = hc.formatmonth(2019, 3)
print(a)

실행 결과

<table border="0" cellpadding="0" cellspacing="0" class="month">
<tr><th colspan="7" class="month">March 2019</th></tr>
<tr><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th>
<th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th><th class="mon">Mon</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>
<td class="fri">1</td><td class="sat">2</td><td class="sun">3</td><td class="mon">4</td></tr>
<tr><td class="tue">5</td><td class="wed">6</td><td class="thu">7</td><td class="fri">8</td>
<td class="sat">9</td><td class="sun">10</td><td class="mon">11</td></tr>
<tr><td class="tue">12</td><td class="wed">13</td><td class="thu">14</td><td class="fri">15</td><td class="sat">16</td>
<td class="sun">17</td><td class="mon">18</td></tr>
<tr><td class="tue">19</td><td class="wed">20</td><td class="thu">21</td><td class="fri">22</td><td class="sat">23</td><td class="sun">24</td>
<td class="mon">25</td></tr>
<tr><td class="tue">26</td><td class="wed">27</td><td class="thu">28</td>
<td class="fri">29</td><td class="sat">30</td><td class="sun">31</td><td class="noday">&nbsp;</td>
</tr></table>

출력된 HTML을 브라우저에서 렌더링하면 2019년 3월 달력이 화요일부터 일요일 순서로 표시되는 것을 확인할 수 있습니다.

마무리

지금까지 파이썬 calendar 모듈의 대표적인 함수인 firstweekday(), leapdays(), HTMLCalendar의 사용법을 알아보았습니다. 이 외에도 isleap(), monthrange(), TextCalendar 등 유용한 기능이 많으니, 실제 프로젝트에서 날짜 관련 로직을 구현할 때 적극적으로 활용해 보시기 바랍니다.