Cómo funciona
Elige una fecha inicial y una final y la calculadora devuelve la diferencia de dos maneras: como descripción de calendario ("3 años, 7 meses, 12 días") y como totales puros (días, semanas, meses). La forma de calendario refleja cómo se habla de duraciones en la vida real — "llevamos juntos 3 años y 4 meses" — mientras que los totales son lo que necesitas para planificación de proyectos, duración de contratos o cualquier cálculo posterior.
La fórmula
Los días totales se calculan a partir de la diferencia en milisegundos entre las dos fechas, dividida entre 86.400.000 (ms/día) y aplicando floor. Semanas = floor(días / 7). Meses totales ≈ años × 12 + meses del recorrido de calendario. Años bisiestos y cambios de horario los gestiona la aritmética de Date — si el momento final está siquiera un segundo antes de la hora de inicio, el conteo de días será uno menos de lo esperado.
Ejemplo de cálculo
- Fecha inicial 01-01-2000, fecha final 28-04-2024.
- Años = 2024 − 2000 = 24. Meses = 4 − 1 = 3. Días = 28 − 1 = 27. No hace falta arrastre.
- Resultado: 24 años, 3 meses, 27 días. Días totales ≈ 8.884. Semanas totales ≈ 1.269. Meses totales ≈ 291.
Preguntas frecuentes
¿Por qué el desglose y/m/d no coincide con los días totales esperados?
Porque los meses no tienen un número fijo de días: "1 mes" va de 28 a 31. El desglose y/m/d sigue el paso del calendario (cómo lo decimos al hablar); los días totales son el conteo literal en milisegundos dividido entre 86.400.000. Ambos son correctos; responden preguntas distintas.
¿Puedo obtener la diferencia en horas o segundos?
Aún no: las entradas son con precisión de día, así que unidades inferiores a un día serían engañosas. Si necesitas ese detalle, multiplica los días totales: horas totales = días × 24, segundos totales = días × 86.400. Quizá añadamos una variante con fecha y hora más adelante.
¿Por qué dice "La fecha inicial debe ser anterior o igual a la final"?
Porque una duración negativa no aporta nada en esta calculadora. Si lo que quieres es saber "hace cuánto fue X", intercambia las fechas: pon antes la más antigua. La matemática funciona en ambos sentidos; la interfaz simplemente no muestra números negativos.