Перейти к содержимому

Калькулятор разницы дат

Рассчитайте точное количество дней, недель и месяцев между двумя датами.

Об этом инструменте

Калькулятор разницы дат — это простой, но мощный инструмент для определения точного промежутка времени между двумя датами. Будь то отслеживание сроков проекта, расчёт возраста, определение количества дней до крайнего срока или планирование событий, этот инструмент мгновенно показывает количество прошедших дней, недель и месяцев. Понимание точной длительности между датами необходимо для управления проектами, личных вех и повседневного планирования.

Использовать калькулятор просто: выберите начальную дату и конечную дату, и инструмент автоматически рассчитает разницу в днях, неделях и месяцах. Он учитывает високосные годы и различную длину месяцев, обеспечивая точность для любого диапазона дат. Это делает его идеальным для специалистов, управляющих расписанием, студентов, отслеживающих сроки сдачи работ, путешественников, планирующих маршруты, или любого человека, нуждающегося в надёжных расчётах дат без ручного вычисления.

Часто задаваемые вопросы

Реализация кода

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.