고급 파이썬 개발 과정
챕터
>
레벨
문자열 & 시간 모듈
달력 모듈
목표
Calendar 모듈을 사용하여 캘린더를 확인하고 일부 납품 일정에 대한 날짜를 설정하세요.
여러 배송이 도착했고, 새로운 농장 건설과 관련하여 분배되어야 할 시간표들이 있습니다. 이전에는 date 모듈을 사용하여 배송 라벨을 설정했지만, 여기서는 calendar 모듈을 사용하여 시간표를 설정할 것입니다. 모듈의 클래스와 함수를 사용하기 위해 import calendar를 사용하여 모든 관련 자료를 가져옵니다.
우리의 목적을 위해, 다음의 calendar 모듈 함수를 사용할 것입니다:
calendar.calendar():해당 연도의 전체 캘린더를 표시합니다. 표시하고자 하는 연도를 인자로 하나 받습니다.calendar.month():한 달의 캘린더를 표시합니다. 연도와 달, 두 개의 인자를 받습니다.calendar.isleap():연도가 윤년인지 확인합니다. 확인하고자 하는 연도를 인자로 하나 받습니다.calendar.leapdays():특정 기간에 걸쳐 누적된 윤일 수를 확인합니다. 확인하고자 하는 기간의 시작 연도와 끝 연도를 인자로 두 개 받습니다.itermonthdays():Calendar()클래스를 사용하여 한 달의 모든 일자를 반복(iterate)합니다. 연도와 달, 두 개의 인자를 받습니다.itermonthdates():Calendar()클래스를 사용하여 한 달의 모든 날짜를 반복(iterate)합니다. 연도와 달, 두 개의 인자를 받습니다.monthdayscalendar():Calendar()클래스를 사용하여 한 달의 모든 주를 반복(iterate)합니다. 연도와 달, 두 개의 인자를 받으며 데이터를 중첩 리스트에 저장합니다.monthdays2calendar():이전 함수와 동일하게 작동하지만, 주와 일자를 함께 2차원 리스트에 저장합니다.
시작하기 위해, 금색 X 표시가 있는 곳으로 걸어가 캘린더를 확인하세요. 변수 cal을 생성하고 calendar.calendar()의 값을 저장한 후, 인자로 연도 2026을 추가합니다. 예시: cal = calendar.calendar(2026). 미리 작성된 display() 함수를 사용하여 방금 설정한 cal 변수를 표시하세요.
캘린더를 확인 및 표시한 후, 밝은 X 표시가 있는 곳으로 걸어가 책상 위의 스프레드시트를 확인하세요. 미리 작성된 read() 함수를 사용하여 공급 스케줄의 날짜 달에 관한 메모를 확인합니다. 읽은 정보를 바탕으로 year 변수와 month 변수 두 개를 생성하고 정보를 저장하세요.
calendar_month라는 변수를 생성하고 calendar.month() 함수를 사용하여 year와 month 변수를 인자로 전달한 값을 저장하세요. 미리 작성된 display() 함수를 사용하여 시간표 설정에 사용할 달의 캘린더를 표시하세요.
초록색 카펫 위에 있는 어두운 X 표시가 있는 곳으로 걸어가, 시간표가 어긋나지 않도록 몇 가지 데이터를 기록합니다. leap_year 변수와 leap_days 변수 두 개를 생성하세요. leap_year 변수에는 calendar.isleap()의 결과를 저장하고 인자로 2026을 전달합니다. 이를 통해 현재 프로젝트 연도가 윤년인지 확인할 수 있습니다. leap_days 변수에는 calendar.leapdays()의 값을 저장하고 인자로 2020과 2027을 전달합니다. 이는 전체 프로젝트 기간 동안 발생한 윤일 수를 확인하는 것입니다. 미리 작성된 write() 함수를 사용하여 leap_year와 leap_days 데이터를 기록하세요.
빨간색 카펫 위에 있는 어두운 X 표시가 있는 곳으로 걸어가 책상을 마주하세요. 여기서는 달의 일정을 개략적으로 작성할 것입니다. 변수 date를 생성하고 calendar.Calendar()의 값을 저장하세요. 이는 나중에 참조할 클래스 객체를 생성합니다. 또 다른 변수 day_roster를 생성하고 빈 문자열을 할당합니다. 예시: day_roster = "".
에디터에 미리 작성된 for 루프가 있으며, 캘린더를 반복하며 날짜를 개요로 작성합니다. itermonthdays() 함수를 사용하고, 앞서 생성한 year와 month 변수를 인자로 전달하세요. 부족한 항목들을 추가하여 명단의 총합을 작성합니다.
for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry
루프가 설정되면, 이 루프를 복제하여 itermonthdays() 함수를 itermonthdates()로 바꾸고 year와 month 변수를 인자로 전달하세요. entry 변수에는 데이터를 다음과 같이 기록하게 합니다: entry = "%s \n" % (day). 이를 통해 프로젝트 기간의 전체 날짜를 얻을 수 있습니다. 미리 작성된 display() 함수를 사용하여 day_roster 변수에 저장된 프로젝트 날짜 전체 명단을 캘린더에 표시하세요.
파란색 카펫 위에 있는 어두운 X 표시가 있는 곳으로 걸어가 메모를 마주하세요. 여기서는 리스트에 기록된 프로젝트 후속 작업 주간을 설정할 것입니다. 변수 weeks를 생성하고 calendar.Calendar()의 값을 저장하세요. 이는 함수와 함께 참조할 클래스 객체를 생성합니다. 작업 중인 시간표를 이동시키기 위해 month 변수의 값을 7로 바꿉니다. 예시: month = 7.
변수 week_roster를 생성하고 빈 문자열을 할당합니다. 예시: week_roster = "". 에디터에 미리 작성된 for 루프가 있으며, 캘린더를 반복하며 주별 일정 개요를 작성합니다. monthdayscalendar() 함수를 사용하고, 앞서 생성한 year와 month 변수를 인자로 전달하세요. 부족한 항목들을 추가하여 주간 명단의 총합을 작성합니다.
for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry
루프가 설정되면, 이 루프를 복제하여 monthdayscalendar() 함수를 monthdays2calendar()로 바꾸고 year와 month 변수를 인자로 전달하세요. 이를 통해 프로젝트 기간의 전체 날짜를 얻을 수 있습니다. 미리 작성된 display() 함수를 사용하여 week_roster 변수에 저장된 프로젝트 평일 전체 명단을 캘린더에 표시함으로써 레벨을 완료하세요.