Calcular días entre fechas
Del 15 de enero de 2024 al 10 de marzo de 2025 hay 420 días, justo 60 semanas, o 13 meses naturales y 23 días. Introduzca dos fechas y obtenga las tres medidas, sin zonas horarias de por medio. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Inicio
- 2024-01-15
- End
- 2025-03-10
- Dirección
- forward
- Días con signo
- 420
- Días
- 420
- Semanas
- 60
Esta calculadora de diferencia entre fechas mide el intervalo entre dos fechas naturales sin depender de zonas horarias, horas del día ni reglas de horario de verano. Introduzca dos fechas reales con el formato YYYY-MM-DD para obtener el número exacto de días, su equivalencia en semanas, un desglose de semanas completas y un desglose de meses naturales con los días restantes. Los resultados son deterministas para fechas gregorianas entre los años 0001 y 9999. Si invierte las fechas, se conserva el mismo intervalo absoluto y se indica claramente que la dirección es hacia atrás.
Introduzca dos fechas naturales precisas
Indique la primera fecha en el campo start y la segunda en el campo end, siempre con el patrón estricto YYYY-MM-DD. Los ceros iniciales son importantes: escriba 2026-07-05 y no 2026-7-5. Cada valor se contrasta con el calendario gregoriano, no solo con una forma de texto.
Por ello, se rechaza el 31 de abril, el 29 de febrero solo se admite en un año bisiesto y un mes 13 nunca puede producir un resultado aparentemente válido. El intervalo de años permitido va de 0001 a 9999. El cálculo utiliza exclusivamente días naturales, sin horas ocultas, zonas horarias locales, cambios de horario de verano ni conversiones a UTC.
Si end es posterior a start, la dirección es forward; si es anterior, es backward. Fechas iguales producen same y cero en todas las medidas.
Interprete correctamente los meses naturales
Los meses no tienen todos la misma duración, por lo que la calculadora no finge que un mes equivale a treinta días fijos ni a una media. El campo months cuenta avances completos de mes natural desde la fecha más temprana hasta la más tardía. Esta pareja constituye un desglose de calendario, mientras que days sigue siendo la distancia exacta universal y weeks es la conversión a unidades de siete días.
Qué puede hacer con ella
Medir el plazo de un proyecto
Convierta las fechas de inicio y entrega en días exactos, semanas completas y meses naturales para planificar.
Comprobar periodos de facturación
Cuente meses naturales completos y días restantes entre fechas de servicio sin suponer que cada mes dura treinta días.
Validar lógica de fechas
Genere intervalos deterministas para pruebas, importaciones, informes y sistemas que deban rechazar fechas imposibles.
Preguntas frecuentes
¿Se cuentan de forma inclusiva las fechas inicial y final?
No. Days mide límites naturales transcurridos, por lo que dos fechas consecutivas están separadas por un día.
¿Cómo se calculan las semanas?
Una semana equivale exactamente a siete días. El resultado incluye un valor decimal, semanas completas y días sobrantes.
¿Cómo se calculan los meses?
Se cuentan avances completos de mes natural y después se indican los días naturales exactos que quedan.
¿Qué pasa si escribo primero la fecha posterior?
Obtiene el mismo intervalo en días, semanas y meses, y el resultado indica que la dirección es hacia atrás. Dos fechas iguales dan cero en todas las medidas y la dirección marcada como mismo día.
¿Influyen la zona horaria o el horario de verano en el resultado?
No. El cálculo usa solo días de calendario, sin hora del reloj, zona horaria local, cambio de horario ni conversión a UTC, así que cualquier persona obtiene la misma respuesta para las mismas fechas.
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/calc2/date-difference \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2024-01-15","end":"2025-03-10"}'const res = await fetch("https://api.kit.forhosting.com/calc2/date-difference", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2024-01-15",
"end": "2025-03-10"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc2/date-difference",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2024-01-15",
"end": "2025-03-10"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc2/date-difference", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2024-01-15","end":"2025-03-10"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2024-01-15","end":"2025-03-10"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc2/date-difference", 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": "2024-01-15",
"end": "2025-03-10"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc2.date_difference",
"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
Introduzca dos fechas naturales precisas
Para integraciones mediante API también se aceptan alias como from y to, mientras que start y end mantienen claros los formularios y ejemplos.
Interprete los días y las semanas del resultado
El campo days expresa el número absoluto de límites de medianoche a medianoche que separan las fechas. El campo weeks divide el total absoluto de días entre siete y redondea el valor mostrado a seis decimales, algo útil para estimaciones e informes. No se aplican supuestos sobre semanas laborales, fines de semana, festivos ni recuento inclusivo. Por ejemplo, del 1 al 2 de enero hay un día, y un día bisiesto se cuenta igual que cualquier otro día natural real. signed_days conserva el orden: es positivo cuando end es posterior, negativo cuando end es anterior y cero cuando ambas entradas coinciden. Para obtener un desglose entero exacto, whole_weeks indica los grupos completos de siete días y remaining_days_after_weeks muestra el resto entre cero y seis. Ambos campos siempre reconstruyen el total: whole_weeks multiplicado por siete, más el resto. Se trata de un intervalo natural transcurrido, apropiado para calendarios, duraciones, datos de prueba y cálculos coherentes mediante API.
Interprete correctamente los meses naturales
Cuando el día original no existe en el mes de destino, el cálculo se ajusta al último día válido de ese mes; así se obtiene un comportamiento estable para intervalos que comienzan el 29, 30 o 31 de enero. remaining_days_after_months indica los días naturales exactos que quedan después de esos meses completos. Con entradas invertidas, el desglose mensual parte de la fecha cronológicamente anterior para mantener cantidades absolutas coherentes; direction y signed_days conservan el orden. Use days para plazos, whole_weeks para bloques de trabajo y months con su resto para suscripciones, aniversarios, antigüedad u otros periodos de calendario.
Preguntas técnicas
¿Cuánto cuesta una solicitud a la API?
Cada solicitud a la API cuesta $0.002. La calculadora puede ejecutarse gratis de forma local en el navegador.
¿Qué ocurre si una fecha no es válida?
La solicitud falla con invalid_input si algún valor tiene un formato incorrecto o no corresponde a una fecha gregoriana real.