Coding for KidsCoding for Kids
창의적인 레벨도전 과제교사 가이드
기능 투표
고급 파이썬 개발 과정
챕터
>
레벨

문자열 및 시간 모듈
날짜/시간 모듈

목표

날짜 및 시간 모듈 함수를 사용하여 기록을 조정하고 공급품의 발송 날짜를 설정하십시오.

새 건설 지역의 별채 하층은 최근에 배송된 일부 공급품이 보관되어 있는 창고로, 이들은 포장이 완료되어 새 건설 주변 지역으로 발송될 준비가 되어 있습니다. 이 공급품들은 올바른 날짜와 시간이 라벨링되어야 하며, 이미 부착된 라벨에는 모든 관련 정보가 포함되어 있어야 합니다. 이를 위해 날짜와 시간을 수동으로 작성하고 형식을 지정할 수도 있지만, 날짜 및 시간 모듈을 사용하면 훨씬 더 빠르게 처리할 수 있습니다.

날짜 및 시간 모듈은 import datetime 을(를) 작성하여 불러오며, 이를 통해 원하는 형식의 날짜와 시간을 읽고 설정할 수 있는 강력한 함수들을 사용할 수 있습니다. 또한 시간대를 설정하기 위해 from datetime import timezone, timedelta 를(을) 사용할 수 있습니다. 모듈을 불러오면 다음 함수들이 제공됩니다:

  • datetime.datetime(): 원하는 날짜와 시간을 설정하고 저장할 수 있으며, year, month, day, hour, minute, second, microsecond, timezone 등의 여러 인수를 받습니다. 모든 인수를 입력할 필요 없이 필요한 인수만 입력하면 됩니다.
  • datetime.datetime.now(): 시계에 표시되는 현재 날짜와 시간을 반환합니다.
  • datetime.datetime.date(): 날짜만 반환하며, 시간은 포함하지 않습니다.
  • datetime.datetime.time(): 시간만 반환하며, 날짜는 포함하지 않습니다.
  • datetime.datetime.timestamp(): UNIX 코드 형식의 datetime 타임스탬프를 반환합니다.
  • timezone(): 날짜와 시간 인수에 사용할 시간대를 설정할 수 있습니다.
  • datetime.strftime(): 날짜와 시간의 특정 정보를 추출하여 원하는 형식으로 포맷할 수 있습니다. 우리 목적을 위해 다음 코드를 사용합니다:
    • "%a" : 요일 (축약형)
    • "%d" : 월의 일
    • "%B" : 월 이름 (전체 표기)
    • "%I" : 12시간제 시간
    • "%M" : 분
    • "%p" : 오전/오후
    • "%x" : 현지 날짜 형식
    • "%X" : 현지 시간 형식
    • "%j" : 연중 일수
    • "%U" : 연중 주
    • "%z" : UTC 시간대

먼저, 조명 X 표시가 있는 곳으로 이동하여 책상을 마주보고, read() 함수를 사용해 선적의 포장 날짜와 프로젝트의 시작 및 종료 날짜를 확인합니다. 문서에 제공된 시작 및 종료 날짜(월/일/연도)를 기록해 두십시오. 메모에 작성된 최초 세(3) 개의 데이터 포인트와 시간대는 이후 함수에서 사용하기 쉽도록 코드 편집기에 미리 작성되어 있습니다.

같은 공간에서 today 라는 변수를 만들고 datetime.datetime.now() 의 반환 값을 저장하십시오. str() 함수를 사용하여 읽기 쉬운 문자열 형식으로 변환합니다. 예: today = str(datetime.datetime.now()). 이후 display() 함수를 사용하여 오늘 날짜를 메모에 기록하면, 발송 할당 날짜가 설정되고 필요한 영역에 누락된 데이터 포인트를 추가할 수 있습니다.

책상 옆의 금색 X 표시로 이동한 후, 이번에는 이 프로젝트가 소요될 일 수를 계산하고 기록할 것입니다. 편집기에는 startend 라는 두 개의 datetime 변수가 미리 작성되어 있습니다. 이전에 읽은 시작 및 종료 날짜를 제공된 공간에 기입하십시오. result 라는 변수를 만들고, endstart 변수의 차이를 계산한 결과를 저장합니다. 읽기 쉬운 문자열 형식으로 변환하기 위해 str() 함수를 사용합니다. 예: result = str(end-start). 이후 write() 함수를 사용하여 result 변수를 기록하고, 프로젝트 소요 시간을 나타냅니다.

이제 책상 옆의 빨간 양탄자 근처 금색 X 표시로 이동하여, 왼쪽 열에 있는 빨간 양탄자 상자 옆의 X 표시로 내려갑니다. 여기에서는 datetime() 을 사용하여 상자에 누락된 포장 날짜의 특정 부분을 추가합니다. 편집기에는 red_date 변수에 미리 할당된 날짜가 있으며, 이를 이용해 다양한 데이터 조각을 추출하여 상자에 라벨을 붙일 것입니다.

빨간 양탄자에 대해:

  • 금색 X 표시에서는 상자를 바라보고 red_days 라는 변수를 만들어 red_date 변수의 date() 를 사용하여 날짜(시간 제외)만 저장한 후 str() 로 변환합니다. 예: red_days = str(red_date.date()). 이후 write() 함수를 사용하여 상자에 red_days 로 라벨을 붙입니다.

  • 연한 X 표시에서는 상자를 바라보고 red_time 이라는 변수를 만들어 red_date 변수의 time() 을 사용하여 시간(날짜 제외)만 저장한 후 str() 로 변환합니다. 예: red_time = str(red_date.time()). 이후 write() 함수를 사용하여 상자에 red_time 으로 라벨을 붙입니다.

  • 진한 X 표시에서는 상자를 바라보고 red_timestamp 라는 변수를 만들어 red_date 변수로부터 계산된 타임스탬프를 저장합니다. 예: red_timestamp = red_date.timestamp(). 이후 write() 함수를 사용하여 상자에 red_timestamp 로 라벨을 붙입니다.

그 다음, 파란 양탄자 상자 앞의 X 표시로 이동합니다. 이전과 마찬가지로 미리 작성된 blue_date 변수를 참조하는 세 개의 색상 X 표시가 있으며, 이를 통해 라벨을 완성합니다. 열을 따라 이동하면서 strftime() 함수를 사용해 배송 라벨에 누락된 요소를 추가할 것입니다. 이 함수는 대상 날짜에서 요소를 추출하고 포맷하기 위한 특정 코드가 필요합니다. 예를 들어, blue_date 변수의 요일을 가져오려면 "%a" 코드를 strftime() 함수와 함께 사용합니다. 예: blue_date.strftime("%a").

파란 양탄자에 대해:

  • 금색 X 표시에서는 상자를 바라보고 blue_weekday 라는 변수를 만들어 blue_date 변수의 strftime() 을 사용하여 요일을 저장합니다. 예: blue_day = blue_date.strftime("%a"). 그리고 blue_day 라는 또 다른 변수를 만들어 blue_date 변수의 strftime() 을 사용하여 월의 일 을 저장합니다. 또 다른 변수인 blue_month 를 만들어 blue_date 변수의 strftime() 을 사용하여 월의 이름 (전체 표기) 을 저장합니다. 미리 작성된 write() 함수에 blue_weekday, blue_dayblue_month 변수를 삽입합니다.

  • 연한 X 표시에서는 상자를 바라보고 blue_hour 라는 변수를 만들어 blue_date 변수의 strftime() 을 사용하여 시간 (12시간제) 을 저장합니다. 그리고 blue_minute 라는 변수를 만들어 blue_date 변수의 strftime() 을 사용하여 을 저장합니다. 또 다른 변수인 blue_meridian 을 만들어 blue_date 변수의 strftime() 을 사용하여 오전/오후 를 저장합니다. 미리 작성된 write() 함수에 blue_hour, blue_minuteblue_meridian 변수를 삽입합니다.

  • 진한 X 표시에서는 상자를 바라보고 blue_local_date 라는 변수를 만들어 blue_date 변수의 strftime() 을 사용하여 현지 날짜 형식 을 저장합니다. 그리고 blue_local_time 이라는 변수를 만들어 blue_date 변수의 strftime() 을 사용하여 현지 시간 형식 을 저장합니다. 미리 작성된 display() 함수에 blue_local_date, blue_local_timeblue_meridian 변수를 삽입합니다.

마지막으로, 초록 양탄자 옆의 금색 X 표시로 이동한 후 오른쪽 열에 있는 초록 양탄자 상자 옆의 X 표시로 내려갑니다. 여기에서는 strftime() 을 사용하여 상자에 누락된 포장 날짜의 특정 부분을 계속 추가합니다. 편집기에는 green_date 변수에 미리 할당된 날짜가 있으며, 이를 이용해 다양한 데이터 조각을 추출하여 상자에 라벨을 붙일 것입니다.

초록 양탄자에 대해:

  • 금색 X 표시에서는 상자를 바라보고 green_day 라는 변수를 만들어 green_date 변수의 strftime() 을 사용하여 연중 일수 를 저장합니다. 이후 write() 함수를 사용하여 상자에 green_day 로 라벨을 붙입니다.

  • 연한 X 표시에서는 상자를 바라보고 green_week 라는 변수를 만들어 green_date 변수의 strftime() 을 사용하여 연중 주 를 저장합니다. 이후 write() 함수를 사용하여 상자에 green_week 로 라벨을 붙입니다.

  • 진한 X 표시에서는 상자를 바라보고 green_timezone 라는 변수를 만들어 green_date 변수의 strftime() 을 사용하여 UTC 시간대 를 저장합니다. 이후 write() 함수를 사용하여 상자에 green_timezone 으로 라벨을 붙입니다.

모든 색상 양탄자 옆의 X 표시 라벨 작업이 완료되면, 이 단계는 완료됩니다.

코드북