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

Next Birthday Calculator

Вычислите дни до следующего дня рождения, текущий возраст и день недели.

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

День рождения — это важный момент, который мы отмечаем каждый год, но точное вычисление количества дней до вашего следующего дня рождения может быть удивительно полезным для планирования особых событий, отправки напоминаний близким или простого удовлетворения любопытства о том, когда наступит ваш следующий праздник. Этот Калькулятор Следующего Дня Рождения мгновенно вычисляет количество дней до вашего следующего дня рождения, показывает ваш текущий возраст и даже раскрывает, на какой день недели приходится ваш день рождения, все на основе вашей даты рождения и сегодняшней даты.

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

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

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

from datetime import date

def next_birthday_info(birth_date: date, today: date = None) -> dict:
    """Calculate days until next birthday, current age, and day of week."""
    if today is None:
        today = date.today()

    age = today.year - birth_date.year
    # Check if birthday already happened this year
    had_birthday = (today.month, today.day) >= (birth_date.month, birth_date.day)
    if not had_birthday:
        age -= 1

    # Next birthday
    next_year = today.year if not had_birthday else today.year + 1
    try:
        next_bday = date(next_year, birth_date.month, birth_date.day)
    except ValueError:  # Feb 29 on non-leap year
        next_bday = date(next_year, 3, 1)

    days_until = (next_bday - today).days
    day_of_week = next_bday.strftime("%A")

    return {
        "current_age": age,
        "next_birthday": next_bday.isoformat(),
        "days_until": days_until,
        "day_of_week": day_of_week,
        "is_today": days_until == 0,
    }

info = next_birthday_info(date(1990, 7, 15))
print(f"Age: {info['current_age']}")
print(f"Next birthday: {info['next_birthday']} ({info['day_of_week']})")
print(f"Days until: {info['days_until']}")

Comments & Feedback

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