Saltar al contenido
🛠️ToolsShed

Day of Year Calculator

Encuentra qué número de día (1-365) cae una fecha o convierte un número de día de vuelta a una fecha.

Acerca de esta herramienta

Una calculadora de día del año le ayuda a determinar qué número de día del año (1 al 365, o 366 en años bisiestos) cae una fecha específica. Esta herramienta es útil para científicos, analistas de datos, gestores de proyectos y cualquiera que trabaje con secuencias de fechas o datos estacionales. Al comprender qué número de día representa una fecha, puede realizar cálculos de fechas relativas, rastrear días transcurridos e identificar eventos estacionales basándose en su posición en el año.

Para usar la calculadora, simplemente ingrese una fecha de calendario y la herramienta convierte instantáneamente a su número de día del año. Alternativamente, si conoce el número del día, puede ingresarlo junto con el año para obtener la fecha exacta correspondiente. La calculadora maneja automáticamente los años bisiestos, lo que garantiza resultados precisos ya sea que esté trabajando con el 29 de febrero o cualquier otra fecha.

Preguntas Frecuentes

Implementación de Código

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.