산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 calendar 모듈 전문가 가이드: 코드 예제로 배우는 달력 생성과 날짜 계산

파이썬 내장 calendar 모듈은 날짜, 월, 년을 다루는 강력한 도구를 제공합니다. TextCalendar와 HTMLCalendar 같은 클래스를 활용해 인쇄용 또는 웹 친화적인 달력을 만들고, 날짜를 순회하며, 맞춤형 스케줄링 규칙을 계산할 수 있습니다.

아래는 가장 일반적인 사용 사례를 단계별로 안내하며, 파이썬 2와 3 모두에서 바로 실행 가능한 코드 스니펫을 포함합니다.

1단계 – 텍스트 달력 생성

다음 스크립트를 실행해 2025년 1월의 일반 텍스트 달력을 확인하세요. 주의 시작일을 목요일로 설정했습니다:

파이썬 calendar 모듈 전문가 가이드: 코드 예제로 배우는 달력 생성과 날짜 계산

시작일을 일요일로 변경해 유연성 확인:

파이썬 calendar 모듈 전문가 가이드: 코드 예제로 배우는 달력 생성과 날짜 계산

2단계 – HTML 달력 렌더링

웹 애플리케이션용으로 HTMLCalendar가 CSS로 스타일링 가능한 전체 HTML 테이블을 생성합니다:

파이썬 calendar 모듈 전문가 가이드: 코드 예제로 배우는 달력 생성과 날짜 계산

3단계 – 월의 날짜 순회

itermonthdays 메서드는 해당 월의 모든 날짜를 산출하며, 인접 월에 속하는 날짜는 0으로 패딩합니다. 이는 달력 정렬에 유용합니다:

파이썬 calendar 모듈 전문가 가이드: 코드 예제로 배우는 달력 생성과 날짜 계산

4단계 – 로케일 인식 이름 가져오기

파이썬은 시스템 로케일에 따라 월명과 요일명을 자동으로 제공합니다. calendar.month_name과 calendar.day_name 출력 예시:

파이썬 calendar 모듈 전문가 가이드: 코드 예제로 배우는 달력 생성과 날짜 계산

로케일 설정은 머신마다 다르므로 다른 국가 사용자는 결과가 다를 수 있습니다.

5단계 – 맞춤 날짜 계산(예: 매월 첫 번째 월요일)

2025년 매월 첫 번째 월요일을 찾는 간결한 스크립트:

파이썬 calendar 모듈 전문가 가이드: 코드 예제로 배우는 달력 생성과 날짜 계산

로직은 calendar.monthcalendar로 주 매트릭스를 얻은 뒤, 첫 두 주에서 0이 아닌 월요일 값을 확인합니다.

파이썬 2 예제

import calendar
# 일반 텍스트 달력 생성
c = calendar.TextCalendar(calendar.THURSDAY)
text = c.formatmonth(2025, 1)
print text
# HTML 포맷 달력 생성
hc = calendar.HTMLCalendar(calendar.THURSDAY)
html = hc.formatmonth(2025, 1)
print html
# 월의 날짜 순회
for i in c.itermonthdays(2025, 4):
    print i
# 로케일 인식 월/요일명
for name in calendar.month_name:
    print name
for day in calendar.day_name:
    print day
# 매월 첫 번째 월요일 찾기
for month in range(1, 13):
    mycal = calendar.monthcalendar(2025, month)
    week1 = mycal[0]
    week2 = mycal[1]
    if week1[calendar.MONDAY] != 0:
        auditday = week1[calendar.MONDAY]
    else:
        auditday = week2[calendar.MONDAY]
    print "%10s %2d" % (calendar.month_name[month], auditday)

파이썬 3 예제

import calendar
# 일반 텍스트 달력 생성
c = calendar.TextCalendar(calendar.THURSDAY)
text = c.formatmonth(2025, 1)
print(text)
# HTML 포맷 달력 생성
hc = calendar.HTMLCalendar(calendar.THURSDAY)
html = hc.formatmonth(2025, 1)
print(html)
# 월의 날짜 순회
for i in c.itermonthdays(2025, 4):
    print(i)
# 로케일 인식 월/요일명
for name in calendar.month_name:
    print(name)
for day in calendar.day_name:
    print(day)
# 매월 첫 번째 월요일 찾기
for month in range(1, 13):
    mycal = calendar.monthcalendar(2025, month)
    week1 = mycal[0]
    week2 = mycal[1]
    if week1[calendar.MONDAY] != 0:
        auditday = week1[calendar.MONDAY]
    else:
        auditday = week2[calendar.MONDAY]
    print("%10s %2d" % (calendar.month_name[month], auditday))

핵심 요약

python

  1. C# 추상 클래스(Abstract Class) 완벽 가이드: 실전 코드 예제
  2. Python strip() 메서드 완전 정복: 종합 가이드와 실전 예제
  3. Python str.count() 마스터하기: 문자 및 부분문자열 개수 세기 예제
  4. 파이썬 round() 함수 완전 정복: 실용 예제로 이해하기
  5. 파이썬 map() 함수 마스터하기: 문법, 예제, 모범 사례
  6. 파이썬 timeit()으로 실행 시간 측정하기: 실용 예제
  7. 파이썬 yield 마스터하기: 제너레이터 vs return 실전 가이드
  8. 파이썬 collections.Counter: 효율적 카운팅, 업데이트, 산술 연산
  9. 파이썬 list.count() 전문가 가이드: 실전 예제로 배우는 요소 개수 세기
  10. 파이썬 list.index() – 요소 위치 찾기 실전 예제와 대안 기법