Primer y último día del año
Para el 15 de junio de 2024, el año va del 2024-01-01 al 2024-12-31 y tiene 366 días por ser bisiesto. Use esas dos fechas como límites listos para informes anuales, filtros, carpetas de archivo o etiquetas de conservación. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Fecha
- 2024-06-15
- Año
- 2 024
- Primer día
- 2024-01-01
- Último día
- 2024-12-31
- Días del año
- 366
Esta calculadora del primer y último día del año recibe una fecha ISO explícita y devuelve los dos límites inclusivos del mismo año natural. Resulta útil cuando un informe, filtro, archivo o regla de validación necesita el 1 de enero y el 31 de diciembre sin consultar el reloj actual. Antes de generar el resultado, comprueba que la entrada sea una fecha gregoriana real, incluidas las reglas de los años bisiestos seculares. También indica el año, si es bisiesto y cuántos días contiene.
Cómo se obtienen los límites del año
Introduzca una fecha con exactamente cuatro cifras para el año, dos para el mes y dos para el día, separadas por guiones. La calculadora divide primero esos componentes y los valida según el calendario gregoriano proléptico. El mes debe estar entre 01 y 12, y el día permitido depende del mes y del año.
Febrero tiene 29 días cuando el año es divisible por cuatro, salvo que los años seculares también deben ser divisibles por cuatrocientos; por tanto, 2000 es bisiesto, 1900 no lo es y 2024 sí. Una vez confirmada la existencia de la fecha, solo se necesita el componente del año. El primer día inclusivo es ese año de cuatro cifras seguido de 01-01, y el último es el mismo año seguido de 12-31.
Los límites no cambian en un año bisiesto: el día adicional aparece en febrero, mientras que el 1 de enero y el 31 de diciembre permanecen fijos. El método nunca pregunta cuál es la fecha actual y evita el análisis mediante Date, de modo que un servidor UTC, un navegador local y un trabajador perimetral producen las mismas cadenas ISO. La operación tiene tiempo constante y no realiza llamadas externas.
Validación de entrada y campos de respuesta
Envíe un objeto con el campo obligatorio date, por ejemplo 2024-06-15. La sintaxis aceptada es deliberadamente estricta: se rechazan meses abreviados como 2024-6-15, fechas con barras, marcas de tiempo, espacios exteriores y expresiones localizadas. Esta exigencia impide que un analizador aparentemente práctico interprete el mismo texto de forma distinta en dos equipos.
La sintaxis no basta: también se rechazan el mes cero, el mes trece, el 31 de abril, el 30 de febrero y el 29 de febrero de un año común. La fecha siempre es explícita y obligatoria; si falta, jamás se sustituye por hoy. Así, solicitudes guardadas, pruebas y procesos históricos siguen siendo reproducibles años después.
Uso seguro de los límites del año natural
Los límites del año natural son especialmente útiles en consultas anuales de bases de datos, periodos de informes, carpetas documentales, etiquetas de conservación y valores iniciales de selectores de fecha. Si otro sistema necesita marcas de tiempo, aplique explícitamente su política de zona horaria después de recibir el resultado; no suponga que una fecha terminada en 31 de diciembre representa automáticamente el mismo instante final en todas partes.
Para intervalos temporales semiabiertos, un diseño habitual usa el primer día devuelto como límite inferior inclusivo y calcula aparte el 1 de enero del año siguiente como límite superior exclusivo. Esta capacidad devuelve deliberadamente el último día real del año solicitado porque responde a la intención de búsqueda y es más claro para calendarios humanos. No calcula ejercicios fiscales, cursos académicos, periodos móviles de doce meses, días laborables ni el año actual.
Esos conceptos requieren reglas adicionales. El comportamiento determinista también sirve para datos de prueba: elija fechas alrededor del 29 de febrero, límites seculares, 1 de enero y 31 de diciembre.
Qué puede hacer con ella
Filtros de informes anuales
Convierta cualquier transacción fechada en límites inclusivos del 1 de enero y el 31 de diciembre para consultar un año natural coherente.
Nombres de archivos y carpetas
Obtenga límites anuales estables desde la fecha de un registro sin depender del año actual ni de la zona horaria del equipo.
Preguntas frecuentes
¿La calculadora utiliza el año actual?
No. Exige una fecha ISO explícita y solo usa el año contenido en ella, por lo que el reloj actual no puede afectar la respuesta.
¿Qué formato debe tener la fecha?
Use el formato estricto YYYY-MM-DD con componentes de anchura fija, como 2024-06-15. Se rechazan marcas de tiempo, barras, componentes abreviados y fechas imposibles.
¿Un año bisiesto cambia los límites devueltos?
No. El año bisiesto añade el 29 de febrero entre ambos límites.
¿Se incluyen el primer y el último día en el intervalo?
Sí. Tanto el 1 de enero como el 31 de diciembre forman parte del intervalo, así que puede usarlos directamente en un filtro desde-hasta que incluya ambos extremos, sin sumar ni restar un día.
¿Cómo uso estas fechas si trabajo con horas exactas?
Trátelas como días del calendario, no como instantes, y aplique su propia regla de zona horaria. Si necesita un intervalo que termine justo antes del año siguiente, use como final el 1 de enero de ese año.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/date/year-start-end \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2024-06-15"}'const res = await fetch("https://api.kit.forhosting.com/date/year-start-end", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2024-06-15"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/year-start-end",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2024-06-15"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/year-start-end", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2024-06-15"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2024-06-15"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/year-start-end", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"date": "2024-06-15"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.year_start_end",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Cómo se obtienen los límites del año
El cálculo determina si days_in_year vale 365 o 366 y proporciona el indicador is_leap_year.
Validación de entrada y campos de respuesta
Una respuesta correcta repite la fecha validada e incluye year como entero. first_day y last_day son fechas ISO inclusivas, listas para filtros con comparaciones mayor o igual y menor o igual. Además, is_leap_year y days_in_year permiten dimensionar calendarios anuales o confirmar el tratamiento de los bisiestos sin otro cálculo. Una entrada errónea produce invalid_input con una explicación breve, sin desplazarse silenciosamente a otro mes o año. El navegador y la API comparten la misma función pura solve.
Uso seguro de los límites del año natural
Considere first_day y last_day como fechas civiles, no como instantes. Una solicitud API correcta cuesta $0.002 por elemento; el navegador realiza localmente el mismo cálculo puro. Sin red, reloj, azar ni estado regional oculto, una entrada repetida produce siempre el mismo JSON.
Casos de integración
Pruebas de regresión del calendario
Genere límites previsibles y metadatos bisiestos para casos de prueba con años comunes, bisiestos y excepciones seculares.
Preguntas técnicas
¿El primer y el último día son inclusivos?
Sí. first_day es el 1 de enero y last_day el 31 de diciembre del año natural de la entrada; ambos pertenecen a ese año.
¿Cuánto cuesta una solicitud API?
Una solicitud API correcta cuesta $0.002 por elemento. La versión del navegador ejecuta gratis el mismo cálculo determinista de forma local.