예제가 포함된 Python CALENDAR 튜토리얼

Python의 달력 모듈에는 날짜, 월, 연도를 기준으로 다양한 작업을 계산할 수 있는 달력 클래스가 있습니다. 또한 Python의 TextCalendar 및 HTMLCalendar 클래스를 사용하면 달력을 편집하고 요구 사항에 따라 사용할 수 있습니다.

Python Calendar로 무엇을 할 수 있는지 살펴보겠습니다.

1단계) 코드를 실행합니다.

Python의 달력

  • 코드 라인 # 1: 이 모듈의 모든 클래스를 가져오는 "캘린더 가져오기"로 시작합니다.
  • 코드 줄 # 3: c= Calendar.TextCalendar(calendar.SUNDAY)는 인터프리터에게 텍스트 달력을 생성하라고 지시합니다. 매월 시작은 일요일입니다. Python에서는 시작하는 날짜를 변경할 수 있으므로 달력의 형식을 지정할 수 있습니다.
  • 코드 줄 # 4: str= c.formatmonth(2025,1) 2025년, 1월 – XNUMX월에 대한 달력을 생성 중입니다.
  • 코드 줄 # 5: print str은 출력을 인쇄합니다.

일요일부터 목요일까지 값을 빠르게 변경하고 출력을 확인해 보겠습니다.

Python의 달력

단계 2) 달력을 HTML 형식으로 인쇄할 수도 있습니다. 이 기능은 달력의 모양과 느낌을 변경하려는 개발자에게 유용합니다.

Python의 달력

단계 3) 루프 c.itermonthday (2025,4)를 사용하면 한 달 동안 해당 달의 총 일수를 가져옵니다.

Python의 달력

  • 특정 달의 총 일수를 얻기 위해 코드를 실행하면 "30월"이라고 말하면 출력에 XNUMX일이 표시되지만 시작 부분과 끝 부분에 이러한 날짜와 함께 XNUMX도 표시됩니다. .
  • 출력에서 XNUMX은 요일이 겹치는 달에 있음을 의미하며 이는 해당 달에 속하지 않음을 의미합니다.
  • 코드에서 일(목요일)을 언급했기 때문에 이러한 1이 출력에 나타납니다. 따라서 "c.itermonthdays" 함수를 호출하면 목요일부터 일수 계산이 시작되고 목요일은 날짜 XNUMX로 시작하지 않을 수 있습니다.st 28월은 XNUMX일 수도 있겠네요th 또는 29th 28월이므로 코드를 실행하면 XNUMX일부터 일수가 계산되기 시작합니다.th 1월 및 그 이후부터 XNUMX일까지st XNUMX월의. 이러한 날짜는 XNUMX으로 계산되며 출력에 이러한 XNUMX이 표시되며 월말에도 동일하게 적용됩니다.
  • 따라서 날짜 1-30을 제외하고 이전 달과 이후 달의 모든 날짜는 출력에 XNUMX으로 표시됩니다.

단계 4) 월, 평일 등 로컬 시스템에서 데이터를 가져올 수 있습니다.

Python의 달력

  • 여기에 있는 출력은 로컬 시스템에서 월 이름을 인쇄했음을 보여줍니다. 좋다wise, 아래와 같이 평일 이름을 가져올 수도 있습니다.
  • 출력은 로컬 시스템에 따라 달라집니다. 로컬 시스템이 다른 국가인 경우 해당 국가의 로컬 설정에 따라 출력이 제공된다고 가정합니다. 여기에는 몇 달이 있으므로 차이는 없지만 일주일이나 하루라면 확실히 달라집니다.

Python의 달력

단계 5) 일년 내내 특정 날짜의 목록을 가져올 수 있습니다. 예를 들어, 매월 첫째 날에 감사일이 있습니다. Monday 일주일. 첫 번째 날짜를 알고 싶습니다. Monday 매월. 이 코드를 사용할 수 있습니다

Python의 달력

  • mycal = Calendar.monthcalendar(2025, Month)는 해당 월의 달력을 생성합니다.
  • 변수 week1 및 week2를 달력의 첫 번째 및 두 번째 주로 설정합니다.
  • 1주차에 다음이 포함되어 있는지 확인하세요. Monday, 감사일 설정
  • 그렇지 않으면 감사일을 첫 번째로 설정합니다. Monday 2주차에
  • 출력에는 첫 번째 날짜가 표시됩니다. Monday 그 달에 해당하는 것입니다.
  • 이 Cal 개체의 길이는 해당 월에 몇 주가 있는지에 따라 특정 길이가 됩니다. 우리의 경우에는 먼저 한두 개가 될 것입니다. Monday 주의 사항은 첫 번째 주에 가장 자주 발생하지만 그렇지 않은 경우 두 번째 주를 고려하십시오. 둘째 주도 고려하는 이유를 자세히 살펴보겠습니다.
  • 여기서는 달력의 상수를 사용하고 있습니다. Monday, 달력 개체는 일요일을 나타내는 상수를 제공합니다. Monday, 화요일 등등. 우리는 이전에 이것을 본 적이 있습니다. 따라서 첫 번째 주에 다음으로 표시되는 날이 Monday 상수는 0이 아닙니다. XNUMX은 다른 달에 속하는 날짜를 의미한다는 점을 기억하세요. 따라서 이 경우에 XNUMX이면 Monday 이는 지난달에 속합니다. 하지만 첫 번째라면 Monday 은 0이 아닙니다. 이는 감사일이 첫 번째 주 내에 있음을 의미합니다. 다른wise, 0이면 첫 번째 Monday 매월 첫째 주가 아니라 둘째 주가 되어야 합니다.
  • 그럼 저는 괜찮다고 말하고 감사일 변수를 Monday 2주차로 표시됩니다. 따라서 감사일은 첫 번째 주 또는 두 번째 주에 대한 날짜로 다시 돌아올 것입니다.

다음은 완전한 코드입니다.

파이썬 2 예

import calendar
# Create a plain text calendar
c = calendar.TextCalendar(calendar.THURSDAY)
str = c.formatmonth(2025, 1, 0, 0)
print str

# Create an HTML formatted calendar
hc = calendar.HTMLCalendar(calendar.THURSDAY)
str = hc.formatmonth(2025, 1)
print str
# loop over the days of a month
# zeroes indicate that the day of the week is in a next month or overlapping month
for i in c.itermonthdays(2025, 4):
    print i

    # The calendar can give info based on local such a names of days and months (full and abbreviated forms)
    for name in calendar.month_name:
        print name
    for day in calendar.day_name:
        print day
    # calculate days based on a rule: For instance an audit day on the second Monday of every month
    # Figure out what days that would be for each month, we can use the script as shown here
    for month in range(1, 13):
		# It retrieves a list of weeks that represent the month
        mycal = calendar.monthcalendar(2025, month)
		# The first MONDAY has to be within the first two weeks
        week1 = mycal[0]
        week2 = mycal[1]
        if week1[calendar.MONDAY] != 0:
            auditday = week1[calendar.MONDAY]
        else:
        # if the first MONDAY isn't in the first week, it must be in the second week
        	auditday = week2[calendar.MONDAY]
print "%10s %2d" % (calendar.month_name[month], auditday)

파이썬 3 예

import calendar
# Create a plain text calendar
c = calendar.TextCalendar(calendar.THURSDAY)
str = c.formatmonth(2025, 1, 0, 0)
print(str)

# Create an HTML formatted calendar
hc = calendar.HTMLCalendar(calendar.THURSDAY)
str = hc.formatmonth(2025, 1)
print(str)
# loop over the days of a month
# zeroes indicate that the day of the week is in a next month or overlapping month
for i in c.itermonthdays(2025, 4):
    print(i)

    # The calendar can give info based on local such a names of days and months (full and abbreviated forms)
    for name in calendar.month_name:
        print(name)
    for day in calendar.day_name:
        print(day)
    # calculate days based on a rule: For instance an audit day on the second Monday of every month
    # Figure out what days that would be for each month, we can use the script as shown here
    for month in range(1, 13):
		# It retrieves a list of weeks that represent the month
        mycal = calendar.monthcalendar(2025, month)
		# The first MONDAY has to be within the first two weeks
        week1 = mycal[0]
        week2 = mycal[1]
        if week1[calendar.MONDAY] != 0:
            auditday = week1[calendar.MONDAY]
        else:
        # if the first MONDAY isn't in the first week, it must be in the second week
        	auditday = week2[calendar.MONDAY]
print("%10s %2d" % (calendar.month_name[month], auditday))

요약

  • Python에서는 시작 날짜를 변경할 수 있으므로 원하는 방식으로 달력의 형식을 지정할 수 있습니다.
  • 달력을 HTML 형식으로 인쇄
  • 월 또는 평일과 같은 데이터를 로컬 시스템에서 가져옵니다.
  • 일년 내내 특정 날짜의 목록을 가져옵니다.