跳到内容
🛠️ToolsShed

日期差计算器

计算两个日期之间确切的天数、周数和月数。

关于此工具

日期差值计算器是一个简单而强大的工具,用于确定两个日期之间的确切时间跨度。无论您是在跟踪项目时间表、计算年龄、衡量距离截止日期还有多少天,或计划活动,该工具都能立即显示已经过的天数、周数和月数。精确理解日期之间的时间跨度对于项目管理、人生重要时刻和日常规划至关重要。

使用计算器非常简单:选择您的开始日期和结束日期,工具会自动计算天数、周数和月数的差值。它考虑了闰年和不同月份的长度,确保任何日期范围内的准确性。这使其非常适合管理日程的专业人士、追踪作业截止日期的学生、规划行程的旅行者,或任何需要可靠日期计算而无需手动计算的人。

常见问题

代码实现

from datetime import date

def date_difference(start: date, end: date) -> dict:
    """Calculate the difference between two dates in multiple units."""
    if end < start:
        start, end = end, start

    total_days = (end - start).days
    weeks = total_days // 7
    remaining_days = total_days % 7

    # Calendar months and years
    years = end.year - start.year
    months = end.month - start.month
    days = end.day - start.day
    if days < 0:
        months -= 1
        import calendar
        days += calendar.monthrange(end.year, end.month - 1 or 12)[1]
    if months < 0:
        years -= 1
        months += 12

    return {
        "years": years, "months": months, "days": days,
        "total_days": total_days, "total_weeks": total_days / 7,
        "whole_weeks": weeks, "remaining_days": remaining_days,
    }

# Example
d1, d2 = date(2020, 1, 15), date(2024, 6, 20)
diff = date_difference(d1, d2)
print(f"{diff['years']} years, {diff['months']} months, {diff['days']} days")
print(f"Total: {diff['total_days']} days / {diff['whole_weeks']} full weeks")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.