코딩라이브러리/파이썬

[파이썬] 시간 함수 어떻게 쓰나 (with 백준 10699)

유니네 라이브러리 2024. 6. 5. 19:42

파이썬에서 시간 및 날짜 관련 함수time 모듈과 datetime 모듈을 활용하여 쉽게 다룰 수 있다.

  • time 모듈 → 프로그램 실행 시간을 측정할 때 사용
  • datetime 모듈 → 날짜 계산 및 포맷 변환할 때 사용

이번 포스트에서는 시간 함수 활용법백준 10699번 문제 풀이를 해보겠다.

 

📌 time 모듈 – 실행 시간 측정하기

 

프로그램의 실행 시간을 측정하고 싶다면 time.time() 함수를 사용할 수 있다.

 

✅ 실행 시간 측정 코드

import time

st = time.time()  # 시작 시간 기록

# 프로그램 실행 (예: 1초 대기)
time.sleep(1)

end = time.time()  # 종료 시간 기록
diff = end - st  # 실행 시간 계산

print(f"프로그램 작동시간: {diff:.5f} sec")  # 소수점 5자리까지 출력

 

✅ 실행 예시

프로그램 작동시간: 1.00107 sec

 

📌 datetime 모듈 – 날짜 차이 계산하기

 

날짜 차이를 계산할 때는 datetime.date 객체를 사용하면 편리하다.

 

✅ 특정 날짜부터 오늘까지 경과 일수 계산

import datetime as dt

stdt = dt.date(2024, 5, 1)  # 시작 날짜
eddt = dt.date.today()  # 오늘 날짜

diff = eddt - stdt
print(f"{diff.days}일 지남")

 

✅ 실행 예시

35일 지남

 

📌 timedelta – 특정 날짜 계산하기

 

특정 날짜를 기준으로 며칠 전/후를 계산하려면 timedelta 객체를 사용한다.

 

✅ 특정 날짜 이후 및 이전 날짜 계산

import datetime as dt

nowdate = dt.date.today()  # 오늘 날짜
diff = dt.timedelta(days=20)  # 20일 차이

print(f"오늘부터 {diff.days}일 지나면 {nowdate + diff} 입니다.")
print(f"오늘부터 {diff.days}일 이전은 {nowdate - diff} 입니다.")

 

✅ 실행 예시

오늘부터 20일 지나면 2024-06-25 입니다.
오늘부터 20일 이전은 2024-05-16 입니다.

 

🔹 timedelta 인자 목록

dt.timedelta(days=0, seconds=0, microseconds=0, 
             milliseconds=0, minutes=0, hours=0, weeks=0)
  • days → 일 단위 차이
  • weeks → 주 단위 차이
  • hours, minutes, seconds → 시간 단위 차이

📌 날짜 문제 연습 – 백준 10699번 문제 풀이

 

📌 문제 설명

서울의 오늘 날짜를 출력하는 프로그램을 작성하시오.
입력은 없다.
출력
서울의 오늘 날짜를 "YYYY-MM-DD" 형식으로 출력한다.

 

✅ 코드 예제

import datetime as dt

now = dt.datetime.now()  # 현재 날짜 및 시간 가져오기
today = now.strftime('%Y-%m-%d')  # YYYY-MM-DD 형식으로 변환

print(today)

 

✅ 실행 예시

2024-06-05

 

🔹 strftime() 날짜 포맷 변환

  • %Y → 연도(4자리)
  • %m → 월(2자리)
  • %d → 일(2자리)

📌 정리

기능 모듈 사용 함수
실행 시간 측정 time time.time()
날짜 차이 계산 datetime datetime.date()
특정 날짜 계산 datetime datetime.timedelta()
오늘 날짜 출력 datetime datetime.datetime.now()

 

☞ 파이썬 자습서 참고 사이트

 

datetime — Basic date and time types

Source code: Lib/datetime.py The datetime module supplies classes for manipulating dates and times. While date and time arithmetic is supported, the focus of the implementation is on efficient attr...

docs.python.org