Day of Year Calculator
Найдите номер дня (1–365) для конкретной даты или преобразуйте номер дня в дату.
Об этом инструменте
Калькулятор дня года помогает определить, какой порядковый номер дня года (с 1 по 365, или до 366 в високосные годы) приходится на конкретную дату. Этот инструмент полезен для учёных, аналитиков данных, руководителей проектов и всех, кто работает с последовательностями дат или сезонными данными. Зная номер дня года для определённой даты, вы можете выполнять относительные расчёты дат, отслеживать прошедшие дни и определять сезонные события по их положению в году.
Чтобы использовать калькулятор, просто введите дату в календаре, и инструмент мгновенно преобразует её в порядковый номер дня года. Наоборот, если вы знаете номер дня и год, введите их, и калькулятор вернёт соответствующую дату. Инструмент автоматически учитывает високосные годы, обеспечивая точные результаты при работе с 29 февраля или любой другой датой.
Часто задаваемые вопросы
Реализация кода
from datetime import date, timedelta
def day_of_year(year: int, month: int, day: int) -> int:
"""Return the ordinal day of year (1-365/366)."""
return date(year, month, day).timetuple().tm_yday
def is_leap_year(year: int) -> bool:
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
def days_in_year(year: int) -> int:
return 366 if is_leap_year(year) else 365
def iso_week_number(year: int, month: int, day: int) -> int:
return date(year, month, day).isocalendar()[1]
def day_number_to_date(year: int, day_num: int):
"""Convert ordinal day number back to a date."""
return date(year, 1, 1) + timedelta(days=day_num - 1)
def year_progress(year: int, month: int, day: int) -> float:
day_num = day_of_year(year, month, day)
total = days_in_year(year)
return round(day_num / total * 100, 1)
# Examples
today = date.today()
y, m, d = today.year, today.month, today.day
print(f"Day of year: {day_of_year(y, m, d)}")
print(f"Week number: {iso_week_number(y, m, d)}")
print(f"Leap year: {is_leap_year(y)}")
print(f"Year progress: {year_progress(y, m, d)}%")
print(f"Day 100 of {y}: {day_number_to_date(y, 100)}")
Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.