Años bisiestos en un rango
Escriba dos años y obtenga todos los bisiestos entre ellos, con ambos extremos incluidos: de 2000 a 2024 hay 7, empezando por 2000 y terminando en 2024. Los años seculares siguen la regla gregoriana, así que 1900 no cuenta y 2000 sí. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Año inicial
- 2 000
- Año final
- 2 024
- Amplitud de años
- 25
- Cantidad
- 7
- Regla
- Gregorian: year%4==0 and (year%100!=0 or year%400==0)
Los años bisiestos añaden un día extra —el 29 de febrero— para que el calendario civil se mantenga alineado con el año tropical. Según el sistema gregoriano que hoy usa la mayor parte del mundo, un año es bisiesto cuando es divisible entre cuatro, excepto los años seculares, que además deben ser divisibles entre cuatrocientos. Así, 2000 es bisiesto, 1900 no lo es, y años corrientes como 2024 y 2028 sí lo son. Esta herramienta toma un año inicial y un año final inclusivos, recorre cada año del rango con una prueba de bisiesto pura y determinista, y devuelve tanto la cantidad como la lista ordenada de años bisiestos. Cuando el año inicial es mayor que el final, la solicitud falla con un error de validación claro en lugar de intercambiar los límites silenciosamente.
Cómo se decide si un año es bisiesto según el calendario gregoriano
La reforma gregoriana refinó la antigua regla juliana según la cual cada cuarto año era bisiesto. Con las reglas gregorianas, un año Y es bisiesto si y solo si Y es divisible entre cuatro y, además, Y no es divisible entre cien o Y es divisible entre cuatrocientos. En forma compacta: es bisiesto cuando Y módulo cuatro es igual a cero y (Y módulo cien no es cero o Y módulo cuatrocientos es igual a cero).
Los años seculares que no superan la prueba de los cuatrocientos —1700, 1800, 1900, 2100— son años comunes de solo trescientos sesenta y cinco días, mientras que 1600 y 2000 siguen siendo bisiestos. Esta capacidad aplica la regla gregoriana proleptica de forma uniforme para cada año entero del uno al nueve mil novecientos noventa y nueve, en línea con las demás herramientas de calendario del catálogo KIT.
La implementación nunca llama a Date de JavaScript, nunca lee el reloj del sistema y nunca accede a la red: hace parse de dos años enteros, rechaza un rango invertido y luego recorre el intervalo inclusivo recogiendo cada año que supera el predicado de bisiesto.
Dónde aparecen las listas de rangos de años bisiestos en el trabajo real
Los problemas escolares y de concursos preguntan constantemente cuántos años bisiestos caen entre dos años o qué años de un siglo incluyen el veintinueve de febrero; un oráculo fiable que devuelve tanto la cantidad como la lista completa acelera la corrección y la preparación de demostraciones. Los equipos de producto y operaciones que construyen hojas de ruta plurianuales, cohortes de retención o calendarios de facturación necesitan saber cuándo febrero tiene veintinueve días para que los calendarios, los SLA y las fórmulas de recuento de días sigan siendo exactos.
El software que genera ficheros ICS, calendarios de trimestres escolares o periodos de nómina para horizontes largos se beneficia de una función pura que nunca depende de la zona horaria del anfitrión ni de las peculiaridades del constructor Date. Si más adelante necesita ordinales de día del año, recuentos de fines de semana entre dos fechas ISO o números de día juliano, trátelos como intenciones de búsqueda y landings independientes en lugar de sobrecargar esta página de rangos de años bisiestos.
Qué puede hacer con ella
Claves de respuestas para deberes y concursos
Genere la lista ordenada y la cantidad de años bisiestos entre dos años para que profesores y correctores automáticos compartan una misma verdad gregoriana.
Calendarios de planificación plurianual y facturación
Marque cada 29 de febrero en una hoja de ruta de producto, una cohorte de retención o un horizonte de facturación sin errores de Date sensibles a la zona horaria.
Preguntas frecuentes
¿Qué regla de año bisiesto utiliza esta herramienta?
La gregoriana proleptica: un año es bisiesto si es divisible entre 4, excepto los años seculares, que deben ser divisibles entre 400. Así, 2000 es bisiesto, 1900 no lo es y 2024 sí.
¿El rango de años es inclusivo?
Un rango de un solo año devuelve un único año bisiesto o una lista vacía con cantidad cero.
¿Utiliza Date de JavaScript?
No. El algoritmo es aritmética entera pura sobre el predicado gregoriano de bisiesto. Sin Date, sin red y sin aleatoriedad.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta localmente.
¿Qué pasa si escribo el año inicial después del final?
El rango se rechaza con un mensaje claro en lugar de invertirse sin avisar, así que un error al teclear cualquiera de los dos años se ve enseguida. Escriba primero el año anterior; un rango de un solo año es válido.
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/leap-years-between \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_year":2000,"end_year":2024}'const res = await fetch("https://api.kit.forhosting.com/date/leap-years-between", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_year": 2000,
"end_year": 2024
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/leap-years-between",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_year": 2000,
"end_year": 2024
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/leap-years-between", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_year":2000,"end_year":2024}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_year":2000,"end_year":2024}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/leap-years-between", 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
{
"start_year": 2000,
"end_year": 2024
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.leap_years_between",
"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 decide si un año es bisiesto según el calendario gregoriano
El JSON resultante repite los límites, la amplitud de años, la cantidad, la lista ascendente y una breve cadena con la regla, para que pueda auditar el algoritmo sin abrir el código fuente. El precio de las llamadas API con éxito es la base publicada de $0.002 por elemento; los fallos de validación no consumen saldo prepagado.
Qué se envía y qué se recibe
Ambos son obligatorios y deben ser enteros finitos del uno al nueve mil novecientos noventa y nueve. El rango es inclusivo: una solicitud de dos mil a dos mil cuatro informa de cada año bisiesto entre dos mil, dos mil uno, dos mil dos, dos mil tres y dos mil cuatro. Las comprobaciones habituales incluyen de dos mil a dos mil veinticuatro para las décadas modernas, de mil ochocientos noventa y seis a mil novecientos cuatro para mostrar que mil novecientos se omite mientras que dos mil no, y un rango de un solo año donde el único bisiesto posible es ese mismo año. Envíe dos campos enteros llamados start_year y end_year. Si start_year supera a end_year, el manejador falla con invalid_input y un mensaje de que el inicio no debe superar al final, de modo que los clientes puedan corregir el orden en lugar de adivinar. Los campos ausentes, las cadenas no numéricas, los decimales, NaN, Infinity y los años fuera de la banda permitida también fallan con invalid_input y no se cobran. En caso de éxito, la respuesta incluye start_year, end_year, inclusive en true, year_span igual a fin menos inicio más uno, count igual a la longitud de la lista de años bisiestos, leap_years como array ascendente de enteros, además de las cadenas rule y formula que describen la prueba gregoriana. La ruta del navegador se ejecuta localmente sin coste; el precio de la API es $0.002 por elemento con éxito.
Dónde aparecen las listas de rangos de años bisiestos en el trabajo real
Como esta capacidad es un motor de parse puro, el precio de la API es la base publicada de $0.002 por elemento con éxito y la validación fallida no consume saldo.
Casos de integración
Pruebas de dimensiones de fecha en almacenes de datos
Fije listas gregorianas de bisiestos como fixtures para la validación ETL, los calendarios fiscales y las tablas de años prolepticos a lo largo de décadas o siglos.
Preguntas técnicas
¿Qué ocurre si start_year es mayor que end_year?
La solicitud falla con invalid_input. Los límites no se intercambian automáticamente, de modo que una entrada invertida nunca se acepta en silencio.