타임캡슐 계산기
카운트다운과 진행 추적으로 타임캡슐을 열 때까지 얼마나 남았는지 계산합니다.
Quick Set Open Date
자주 묻는 질문
코드 구현
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta
def time_capsule_info(seal_date: date, open_date: date) -> dict:
"""Calculate time capsule duration and milestones."""
if open_date <= seal_date:
raise ValueError("Open date must be after seal date")
delta = relativedelta(open_date, seal_date)
total_days = (open_date - seal_date).days
days_remaining = (open_date - date.today()).days
# Milestone dates
milestones = {}
for pct, label in [(25, "25%"), (50, "Halfway"), (75, "75%")]:
days_offset = int(total_days * pct / 100)
milestones[label] = seal_date + timedelta(days=days_offset)
return {
"seal_date": seal_date.isoformat(),
"open_date": open_date.isoformat(),
"duration_years": delta.years,
"duration_months": delta.months,
"duration_days": delta.days,
"total_days": total_days,
"days_remaining": max(0, days_remaining),
"milestones": {k: v.isoformat() for k, v in milestones.items()},
"decade": f"{(open_date.year // 10) * 10}s",
}
info = time_capsule_info(date(2025, 1, 1), date(2035, 1, 1))
print(f"Duration: {info['duration_years']} years, {info['duration_months']} months")
print(f"Total days: {info['total_days']}")
print(f"Days remaining: {info['days_remaining']}")
print(f"Opening decade: the {info['decade']}")
for label, dt in info["milestones"].items():
print(f" {label}: {dt}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.