1. 날짜와 시간 관련 모듈
1.1 datetime 모듈 소개
datetime
모듈은 Python에서 날짜와 시간을 처리하는 기본 모듈입니다. 현재 날짜와 시간을 가져오거나, 날짜 형식을 변환하고 계산할 수 있습니다.
import datetime
1.2 현재 날짜와 시간 가져오기 (datetime.now()
)
현재 날짜와 시간을 가져오기 위해 datetime.now()
메서드를 사용합니다.
from datetime import datetime
current_time = datetime.now()
print(current_time) # 출력: 2024-10-23 14:35:45.123456
1.3 날짜 형식 변경 (strftime()
, strptime()
)
strftime()
: 날짜 객체를 문자열 형식으로 변환합니다.
formatted_date = current_time.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date) # 출력: 2024-10-23 14:35:45
strptime()
: 문자열을 날짜 형식으로 변환합니다.
date_string = "2024-10-23 14:35:45"
date_object = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(date_object) # 출력: 2024-10-23 14:35:45
1.4 날짜 계산 (덧셈, 뺄셈 등)
timedelta
객체를 사용하여 날짜 간의 덧셈과 뺄셈을 수행할 수 있습니다.
from datetime import timedelta
# 5일 후 날짜 계산
future_date = current_time + timedelta(days=5)
print(future_date) # 출력: 2024-10-28 14:35:45
2. 시간과 관련된 고급 기능
2.1 타이머 기능 (time.sleep()
)
time.sleep()
함수는 프로그램 실행을 일정 시간 동안 멈추게 할 수 있습니다.
import time
print("3초 대기 중...")
time.sleep(3)
print("3초 후 출력!")
2.3 시간대(timezone) 처리
pytz
라이브러리를 사용해 시간대를 처리할 수 있습니다. 이를 통해 UTC 시간을 특정 지역 시간으로 변환하거나, 타임존을 변경할 수 있습니다.
import pytz
from datetime import datetime
# UTC 시간 가져오기
utc_time = datetime.now(pytz.utc)
print(utc_time) # 출력: 2024-10-23 05:35:45+00:00
# 특정 타임존으로 변환
seoul_tz = pytz.timezone("Asia/Seoul")
seoul_time = utc_time.astimezone(seoul_tz)
print(seoul_time) # 출력: 2024-10-23 14:35:45+09:00
3. 날짜와 시간을 활용한 프로그램
3.1 날짜 계산을 활용한 D-Day 프로그램 만들기
다음 프로그램은 사용자가 입력한 날짜로부터 D-Day를 계산합니다.
from datetime import datetime
def calculate_d_day(target_date_str):
target_date = datetime.strptime(target_date_str, "%Y-%m-%d")
current_date = datetime.now()
days_left = (target_date - current_date).days
if days_left > 0:
print(f"D-Day까지 {days_left}일 남았습니다.")
elif days_left == 0:
print("오늘이 D-Day입니다!")
else:
print(f"D-Day로부터 {-days_left}일이 지났습니다.")
# 사용 예시
calculate_d_day("2024-12-25")
3.2 일정 관리 프로그램 작성 (특정 날짜에 알림 설정)
다음은 사용자가 입력한 특정 날짜와 시간에 도달할 때 알림을 제공하는 프로그램입니다.
from datetime import datetime, timedelta
import time
def set_reminder(reminder_time_str):
reminder_time = datetime.strptime(reminder_time_str, "%Y-%m-%d %H:%M:%S")
current_time = datetime.now()
while current_time < reminder_time:
time_left = (reminder_time - current_time).total_seconds()
print(f"알림까지 {int(time_left // 60)}분 남았습니다.")
time.sleep(60) # 1분마다 상태 출력
current_time = datetime.now()
print("알림 시간입니다!")
# 사용 예시: 2분 후에 알림을 설정
reminder_time_str = (datetime.now() + timedelta(minutes=2)).strftime("%Y-%m-%d %H:%M:%S")
set_reminder(reminder_time_str)
'python' 카테고리의 다른 글
16편 Python 기초 문법: 데이터 시각화 (2) | 2024.11.20 |
---|---|
15편 Python 기초 문법: 외부 라이브러리 사용하기 (0) | 2024.11.19 |
13편 Python 기초 문법: 정규 표현식 (0) | 2024.11.17 |
12편 Python 기초 문법: 오류 및 디버깅 (0) | 2024.11.16 |
11편 Python 기초 문법: 파일 및 디렉토리 다루기 (1) | 2024.11.15 |