D-Day 계산기 중요한 날을 놓치지 않는 파이썬 프로젝트
시험이 언제였더라? 여행 날짜가 며칠 남았지?…
매번 달력을 들여다보며 손으로 세는 것도 이젠 지겹지 않으신가요?
D-Day 계산기 하나만 있으면 중요한 날까지 남은 시간을 매일 자동으로 확인할 수 있어요.
오늘은 실용성과 학습 효과 모두 챙길 수 있는 파이썬 미니 프로젝트를 함께 만들어봅니다!
Step 1: 기본 D-Day 계산기 만들기
먼저 오늘 날짜와 특정 날짜 사이의 차이를 계산해주는 함수를 만들어볼 거예요.
이 함수는 날짜를 문자열 형태로 받아서, 얼마나 남았는지 또는 지났는지를 알려줍니다.
from datetime import datetime # 날짜와 시간을 다루는 모듈 가져오기
def calculate_dday(target_date_str):
today = datetime.today() # 오늘 날짜 구하기
target_date = datetime.strptime(target_date_str, "%Y-%m-%d") # 문자열을 날짜 형식으로 변환
delta = target_date - today # 날짜 차이 계산
if delta.days > 0:
return f"D-{delta.days}일 남았습니다!"
elif delta.days == 0:
return "✨ 오늘이 바로 그 날입니다!"
else:
return f"{abs(delta.days)}일이 지났습니다."
이 함수에서 핵심은 datetime
모듈을 활용하는 것입니다.
datetime.today()
는 현재 날짜와 시간을 가져오고,
strptime()
은 문자열을 날짜 객체로 바꿔주며,
delta.days
는 두 날짜의 일 수 차이를 구하는 부분입니다.
Step 2: 사용자 입력으로 계산해보기
이제 방금 만든 함수를 직접 써볼 수 있도록 사용자에게 날짜를 입력받아보겠습니다.
사용자가 YYYY-MM-DD 형식으로 날짜를 입력하면, D-Day 결과를 보여주는 구조입니다.
date_input = input("날짜를 입력하세요 (YYYY-MM-DD): ") # 사용자에게 날짜 입력받기
print(calculate_dday(date_input)) # 함수 실행 결과 출력
이렇게 입력 기능을 추가하면 독자들이 직접 여러 날짜를 넣어보며 결과를 실시간으로 확인할 수 있어 재미가 더해집니다.
Step 3: 제목까지 입력하는 실용 버전
이번 단계에서는 입력한 날짜에 무엇을 위한 날짜인지도 함께 입력받아봅니다.
예를 들어 “생일까지 며칠 남았는지” 또는 “여행까지 얼마나 남았는지”를 출력할 수 있겠죠.
title = input("기념일 이름을 입력하세요: ") # 예: 생일, 시험일 등
date = input("날짜를 입력하세요 (YYYY-MM-DD): ")
print(f"📅 {title}까지 {calculate_dday(date)}")
이 기능은 다양한 기념일을 직접 이름 붙여 관리할 수 있게 해주는 실용적인 확장입니다.
간단한 입력 추가만으로 사용자 경험이 확 달라지죠.
Step 4: 여러 D-Day를 한 번에 확인하는 목록형
마지막으로, 미리 정해둔 여러 날짜들을 한 번에 계산해서 출력해보는 단계입니다.
딕셔너리를 사용해 날짜와 이름을 매칭하고, 반복문으로 처리해줍니다.
ddays = {
"🎓 중간고사": "2025-10-15",
"🎂 생일": "2025-07-01",
"✈️ 여행": "2025-08-10"
}
for name, date in ddays.items():
print(f"{name}: {calculate_dday(date)}")
이 코드는 여러 개의 기념일을 리스트처럼 관리하고, 자동으로 D-Day를 출력해주는 기능입니다.
학사일정, 콘텐츠 일정, 가족 생일 등을 관리할 때 유용하게 쓸 수 있어요.
📦 전체 통합 코드 보기
from datetime import datetime # 날짜 계산을 위한 모듈 불러오기
def calculate_dday(target_date_str):
today = datetime.today()
target_date = datetime.strptime(target_date_str, "%Y-%m-%d")
delta = target_date - today
if delta.days > 0:
return f"D-{delta.days}일 남았습니다!"
elif delta.days == 0:
return "✨ 오늘이 바로 그 날입니다!"
else:
return f"{abs(delta.days)}일이 지났습니다."
print("\n[기념일 D-Day 계산기]")
title = input("기념일 이름을 입력하세요: ")
date = input("날짜를 입력하세요 (YYYY-MM-DD): ")
print(f"📅 {title}까지 {calculate_dday(date)}")
print("\n[등록된 기념일 목록]")
ddays = {
"🎓 중간고사": "2025-10-15",
"🎂 생일": "2025-07-01",
"✈️ 여행": "2025-08-10"
}
for name, date in ddays.items():
print(f"{name}: {calculate_dday(date)}")
이 통합 코드는 오늘 배운 모든 내용을 종합한 예제입니다.
직접 실행해보면서 날짜 계산, 입력 처리, 반복문, 딕셔너리 활용까지 복습해보세요!
✅ 오늘 만든 기능 정리:
– 날짜 입력 → D-Day 계산
– 기념일 이름 입력
– 여러 기념일 목록 출력
– 전체 코드 통합 예제로 복습까지 완료!
✨ 마무리하며
D-Day 계산기는 단순한 코드지만 그 활용성은 무궁무진합니다.
공부 일정, 프로젝트 마감, 기념일 관리까지 — 나만의 일정 비서를 파이썬으로 만들어보세요.
오늘의 배움이 실생활을 바꾸는 경험이 될지도 모르니까요! 🚀
이 코드를 여러분의 공부 일정표, 블로그 위젯, 혹은 GUI 캘린더 앱으로 확장해보는 건 어떨까요?
작은 프로젝트에서 시작했지만, 분명히 실생활에 도움이 되는 파이썬 도구로 발전할 수 있습니다.
이런 미니 도구 시리즈는 앞으로도 계속 연재될 예정이니 즐겨찾기 해두세요!