Command Palette

Search for a command to run...

Calculadora de diferencia de fechas: contar días entre fechas sin errores de uno fuera de uno

Calculadora de diferencia de fechas: contar días entre fechas sin errores de uno fuera de uno

T
Toolz Team
|Jul 12, 2026|19 Min Lectura

Parte de la colección Hora y fecha

Una vez le reembolsé a un cliente $9 debido a un poste de cerca. El SaaS que estaba construyendo tenía una prueba de 14 días, y mi código de prorrateo computaba "días usados" como endDate - startDate en milisegundos, dividido por 86.400.000, redondeado. Inicie una prueba a las 11 p. m. del día 1, convierta a la 1 a. m. del día 15 y las matemáticas digan 14 días, pero el modelo mental del cliente & 39 dijo & quot; Me registré el día 1, ese & 39; el primer día, & quot; lo que hace que el día 15 sea quince. ¿La prueba duró 14 días o 14 noches? Mi código y mi página de precios no estaban de acuerdo entre sí, y el cliente se dio cuenta antes que yo.

Eso es lo que pasa con la aritmética de fecha: la resta es trivial y el claridad es donde todo sale mal. Conteo inclusivo o exclusivo. Si "un mes" a partir del 31 de enero es el 28 de febrero, el 2 de marzo o el 3 de marzo. Si un "día" es de 24 horas cuando el horario de verano hace un día del año 23 horas y otro 25. Cada uno de estos me ha mordido al menos una vez, y he estado enviando aplicaciones de Laravel y React durante más de una década.

un Calculadora de diferencia de fecha existe para responder la pregunta con precisión para que pueda comparar sus suposiciones (y su código) con un resultado correcto conocido. El de Toolz.dev calcula la brecha entre dos fechas cualesquiera en días, semanas, meses y años, completamente en su navegador. Lo uso constantemente: verificar los períodos de factura, verificar la duración de los contratos, liquidar " cuántos días hasta el lanzamiento" debates en Slack con un enlace en lugar de un argumento.

Esta guía cubre cómo usarlo y, lo que es más útil, las cinco formas en que fechar las matemáticas te mienten en silencio, para que las reconozcas en tu propio código.

TL;Dr: Elija dos fechas en el Calculadora de diferencia de fechas de Toolz.dev y obtenga la brecha exacta en días, semanas, meses y años: instantáneo, gratuito, del lado del cliente. Las tres trampas para verificar cada vez: conteo inclusivo versus exclusivo (¿se cuenta la fecha de finalización?), aritmética mensual (los meses tienen 28-31 días, por lo que " 1 mes después " es ambiguo) y zonas horarias (una fecha sin zona horaria es un instante diferente en cada zona; convierta marcas de tiempo primero con Convertidor de marca de tiempo). Para intervalos recurrentes en lugar de brechas únicas, eso es un trabajo para el analizador de cron.


Características clave

Recuentos de días exactos (sin minas terrestres de DST)

El resultado fundamental: el número preciso de días entre dos fechas del calendario. el ingenuo (b - a) / 86400000 Tú ' Encontraré mil cortes de bases de código JavaScript cada vez que se realiza una transición de horario de verano entre las fechas en hora local, produciendo resultados como 89,958333 días que luego se redondean en cualquier dirección incorrecta. Esta calculadora evita toda la clase de error al analizar ambas fechas como UTC antes de hacer cualquier aritmética: UTC nunca avanza ni retrocede, por lo que un día siempre hay exactamente 86.400.000 milisegundos y el recuento sale limpio. Mientras tanto, el desglose de años/meses/días se calcula con matemáticas de calendario real (avanza meses completos, luego cuenta los días sobrantes), no dividiendo por un mes promedio. Cuando su código dice 90 y la calculadora dice 89, crea en la calculadora y busque el límite DST en sus datos de hora local.

Múltiples unidades a la vez

La misma brecha expresada en días, semanas, meses y años, simultáneamente. Esto es más útil de lo que parece, porque diferentes dominios hablan diferentes unidades: los contratos legales hablan en meses, las conversaciones de planificación de sprint en semanas, las conversaciones de facturación en días, las conversaciones de recursos humanos en años de servicio. La brecha entre el 15 de marzo y el 15 de septiembre es de 184 días, 26 semanas y 2 días, o exactamente 6 meses, y el número que necesita depende completamente de quién 's preguntando. Tenerlos todos en una sola vista significa que dejas de hacer "184 dividido por 7 es... 26 y change" Aritmética en tu cabeza, que es exactamente la aritmética en la que la gente se equivoca.

Totales exclusivos más días hábiles inclusivos

El problema del poste de la cerca, hecho visible. El conteo de días totales aquí es exclusivista- la brecha entre las fechas - por lo que de lunes a viernes se lee como 4. Justo debajo, cuenta la calculadora días de trabajo (De lunes a viernes, excluidos los fines de semana) usando la convención inclusiva que utiliza NETWORKDAYS de Excel' y también le indica cuántos días de fin de semana eliminó, por lo que el mismo lapso de lunes a viernes se lee como 5 días hábiles. Ver un total exclusivo y un recuento de días laborables inclusivos en la misma vista es un pequeño recordatorio diario de que " cuántos días" tiene dos respuestas correctas dependiendo de si cuenta ambos puntos finales. Mi reembolso de $9 se produjo porque mi código respondió la pregunta exclusiva mientras que mi página de precios hizo la inclusiva, y una herramienta que muestra ambas convenciones a la vez es una herramienta que le impide elegir una por accidente.

Funciona a través de meses, años bisiestos y siglos

Febrero tiene 28 días excepto cuando tiene 29; 2024 fue un año bisiesto, 2100 wones ' No lo sea a pesar de ser divisible por 4 (la regla del siglo gregoriano que atrapa a todos). La calculadora hace todo esto bien porque utiliza reglas de calendario reales en lugar de " un año es 365,25 días " aproximaciones. Si usted ' Alguna vez ha necesitado el recuento de días para un rango de fechas que abarca febrero en un año bisiesto: acumulación de intereses, ventanas SLA, cálculos de edad cerca de su cumpleaños el 29 de febrero; sabe que estos casos extremos son precisamente donde las matemáticas enrolladas a mano fallan.

Instantáneo, sin registro, sin carga

Entran las fechas, sale la respuesta, completamente del lado del cliente. No se transmite ni almacena nada. Para la mayoría de las matemáticas de citas, esto es más conveniencia que seguridad, pero no siempre. Fechas de empleo, cronogramas médicos, plazos de litigios: los pares de fechas pueden ser silenciosamente sensibles, y ahí ' no hay razón por la que una calculadora deba verlos alguna vez en el lado del servidor. La herramienta se carga rápidamente y funciona sin conexión una vez cargada, lo que también hace que sea lo que se alcance a mitad de la reunión cuando alguien pregunta "espera, ¿cuánto tiempo ha estado abierto ese boleto?"


Cómo usar la calculadora de diferencia de fecha

Paso 1: Ingrese la fecha de inicio

Abre el Calculadora de diferencia de fecha y establece la primera fecha. Utilice el selector, escríbalo directamente o presione el botón Hoy para ajustarlo a la fecha actual. There' es un campo de tiempo opcional (HH:mm) si necesita los totales hasta la hora o el minuto en lugar de medianoche a medianoche. Si sus datos de origen son una marca de tiempo Unix o una cadena ISO 8601 con un componente de tiempo, resuélvalos primero a una fecha del calendario y delibere sobre la zona horaria, porque 1751846400 Es el 7 de julio en Tokio y todavía el 6 de julio en Los Ángeles. los Convertidor de marca de tiempo maneja esa traducción.

Paso 2: Ingrese la fecha de finalización

Establece la segunda fecha. El pedido no es & #39; No necesito preocuparte: una diferencia es una magnitud, y ahí & # 39; es un botón de intercambio si quieres iniciar y finalizar de todos modos. Vale la pena pensarlo deliberadamente aquí: ¿su fecha de finalización es el último día a el período o el primer día trasero ¿Lo? Una suscripción que "termina el 31 de diciembre" y una que "reescribe el 1 de enero" describe el mismo período con diferentes fechas de finalización, y esta es la fuente más común de desacuerdos de un día entre dos personas que calculan el "mismo" rango.

Paso 3: Lea la diferencia en la unidad que necesita

El resultado muestra la brecha entre unidades. Tome el que está denominado su problema y resista la conversión entre ellos a mano después - "6 meses" y "182,5 días" no son intercambiables, porque los meses son 't una duración fija. Si la respuesta va a un contrato, factura o SLA, indique la unidad y La convención de conteo (30 días calendario, sin excluir la fecha de inicio), para que la siguiente persona no vuelva a introducir la ambigüedad que acaba de resolver.

Paso 4: cordura-comprobación contra su código

Si está utilizando la calculadora para depurar una aplicación, compare su respuesta con lo que produce su código para el mismo par de fechas. Un desajuste de exactamente un día significa un problema de frontera o de zona horaria. Un desajuste de un día fraccional significa una división de milisegundos a través de un cambio de horario de verano. Un desajuste de dos o tres días alrededor del final de un mes significa desbordamiento aritmético mes. los formato del error está el diagnóstico, más sobre cada uno de ellos a continuación.


Inmersión profunda técnica: por qué la fecha en que las matemáticas salen mal

La aritmética de fecha parece una resta y en realidad es una pila de reglas de calendario, política de la zona horaria y ambigüedad de definición. Cinco modos de falla representan casi todos los errores que he enviado o revisado.

1. El problema de la cerca (off-uno-por-uno). Entre el día 1 y el día 15 hay 14 intervalos pero 15 días si cuentas ambos extremos. Ningún número es "la diferencia" hasta que especifique la convención. Las noches de hotel, los intereses del préstamo y los períodos de alquiler utilizan conteo exclusivo, recetas, duraciones de eventos y "días de cobertura" que generalmente se usan inclusivos. El patrón de error: una parte de un sistema usa cada uno. Escriba la convención.

2. Los meses no son una unidad. "Un mes después del 31 de enero" no tiene una respuesta obvia: el 31 de febrero no existe & 39; no existe. Legado de JavaScript & #39 Date Maneja esto desbordando: new Date(2026, 0, 31) Más un mes aterriza el 3 de marzo (28 de febrero + 3 días de desbordamiento). strtotime('+1 month') hace lo mismo. La mayoría de los humanos, y la mayoría de los sistemas de facturación, quieren reticente en cambio: 31 de enero + 1 mes = 28 de febrero (o 29). Las bibliotecas difieren: date-fns y Carbon pinch de forma predeterminada en sus ayudantes de adición de meses, sin procesar Date desbordamientos y lo nuevo API temporal Hace del comportamiento una opción explícita, que es el diseño correcto. Si su aplicación hace algo mensualmente con fechas de anclaje después del 28, este es el error que tiene, ya sea que lo haya encontrado o no.

3. Un día no siempre es de 24 horas. En cualquier zona horaria que observe el horario de verano, un día al año dura 23 horas y otro dura 25. Código que calcula las diferencias de día como milliseconds / 86_400_000 Produce un no entero siempre que el rango cruza una transición, y el subsiguiente Math.round contra Math.floor la elección decide si usted ' se desvía por uno. El enfoque sólido es hacer aritmética diurna en fechas de calendario, no en instantes, o normalizar todo a UTC, que no tiene DST, antes de dividir.

4. Una fecha sin zona horaria no es un momento en el tiempo. "2026-07-06" es una amplia 24 horas oscilar Eso comienza y termina en diferentes instantes en cada zona horaria. La versión más desagradable de este error en JavaScript: new Date("2026-07-06") se analiza como UTC Medianoche Según la especificación de EcmaScript, por lo que en cualquier zona horaria al oeste de Greenwich se presenta como el 5 de julio. Perdí la mayor parte de una tarde por esto en un panel de React donde data de un Postgres DATE columna mostrada un día antes para los usuarios de EE. UU.: la columna estaba bien, la API estaba bien, el constructor era el error. Si le quitas una línea a este artículo: nunca alimentes un desnudo YYYY-MM-DD delinear a new Date() Cuando la interpretación a tiempo local importa.

5. ISO 8601 es la respuesta a una pregunta diferente. ISO 8601 (2026-07-06, Big-endian, cero acolchado) Resuelve fecha representación- it's inequívoco donde 07/06/2026 Significa el 6 de julio en Ohio y el 7 de junio en Oxford, y se ordena lexicográficamente. Úselo en cada registro, API y nombre de archivo. pero no hace nada por la fecha aritmético; Un par de fechas ISO perfectamente formateados todavía tiene los cuatro problemas anteriores. La disciplina de formato y la disciplina matemática son disciplinas separadas.

La metalección: utilice una biblioteca de calendario real (date-fns, Luxon, Carbon o Temporal cuando sus objetivos la admitan), haga aritmética en el espacio del calendario en lugar de un espacio de milisegundos y verifique los casos extremos (finales de mes, días bisiestos, horario de verano). fines de semana - contra una fuente independiente como minicalculadora. La verificación independiente es el objetivo de las herramientas; más sobre esa filosofía en el Guía de conversión de marca de tiempo.


Casos de uso comunes

Períodos de facturación y duración de prueba

Los sistemas de suscripción viven y mueren en matemáticas de fecha. La prorrateación necesita recuentos exactos de días dentro de un período de facturación; las pruebas necesitan una fecha de finalización inequívoca; Los planes anuales deben sobrevivir el 29 de febrero. Al crear flujos de pago, ahora calculo cada límite de período dos veces (una en el código y otra en la calculadora) antes de escribir la prueba. Ha detectado errores reales al menos cuatro veces, siempre en los bordes de fin de mes o DST, y siempre del tipo que de otro modo habría surgido como un correo electrónico confuso del cliente. Si el dinero se multiplica por un recuento de días en cualquier parte de su sistema, verifique el recuento de días de forma independiente.

Plazos de proyecto y planificación de Sprint

" ¿Cuántas semanas laborales hay entre ahora y la fecha de lanzamiento?" aparece en cada reunión de planificación, y la respuesta que la gente calcula en sus cabezas se reduce de manera confiable en uno o dos: los humanos son malos para contar a través de los límites de los meses. Obtener el verdadero intervalo del calendario en días y semanas lleva cinco segundos y fundamenta la conversación. A partir de ahí se restan las vacaciones y se amortigua honestamente, en lugar de partir de un número que ya era optimista por una semana.

Cálculos de contrato, aviso y plazo

Las fechas legales y de recursos humanos vienen con convenciones implacables: un período de notificación de 90 días, una ventana de curación de 30 días, una presentación debida " dentro de los 21 días de servicio." Estos son exactamente los campos minados inclusivos versus exclusivos, y el costo de llegar un día tarde es categóricamente peor que el costo de llegar un día antes. Calcule el lapso y luego confirme qué convención de punto final utiliza el documento. (Y para cualquier cosa que realmente importe, un abogado supera a una calculadora: la herramienta le indica el recuento, no las reglas de conteo de jurisdicción 's)

Cálculos de edad y permanencia

Edades, años de servicio, vida útil de la cuenta - todos " diferencia en años y meses" problemas con una regla de sujeción escondida en su interior (alguien nacido el 29 de febrero tiene un cumpleaños legal el 28 de febrero o el 1 de marzo dependiendo de la jurisdicción, que es algo real que los ingenieros han tenido que codificar). Para obtener una respuesta rápida: ¿cuántos años tiene esta cuenta, cuánto tiempo desde la última implementación, cuántos días desde el incidente? La calculadora proporciona la cifra exacta sin cargar una REPL.

Comprobaciones de cordura de datos

Cuando un informe dice que la brecha promedio de orden a entrega es de 47 días y su intestino dice dos semanas, tome una fila real y verifique las dos fechas a mano. La mitad del tiempo, el "Bug" es un cambio de zona horaria o un mes/día intercambiado al analizar aguas arriba. Comprobar por puntos tres o cuatro filas contra una calculadora de confianza es la forma más rápida de decidir si no confiar en la tubería o en su intestino. Para observar lo que cambió entre dos informes exportados, el Herramienta de diferencia de texto Combina bien con este flujo de trabajo.


Convenciones de conteo comparadas

costumbre Lun → Vie es igual usado para estar atento a
Exclusivo (brecha) 4 días Noches de hotel, Aventura de intereses, Edad en días Se siente "Un corto" a lectores no técnicos
inclusivo (span) 5 días Días de medicación, duración de los eventos, "días de cobertura" Off-by-One cuando se mezcla con sistemas exclusivos
días de trabajo 4 o 5 menos vacaciones SLA, estimaciones de envío, plazos legales Los calendarios de vacaciones difieren según el país e incluso por contrato
Períodos exactos de 24 horas depende de los tiempos Alquiler, Aparcamiento, Ventanas de Tarifa API DST hace un día local 23h y otra 25h
Meses/años calendario "1 mes después" Ciclos de facturación, contratos, arrendamiento Las longitudes de los meses varían; sujeción frente a desbordamiento al final del mes

El mensaje real de la tabla: "Cuánto tiempo entre estas fechas" no es una pregunta. Elija la fila que coincida con su problema, nómbrela explícitamente en su código y su copia, y desaparece toda la categoría de disputa. Esta es la misma disciplina el resto de Kit de herramientas para desarrolladores web sigue presionando: haz que lo implícito sea explícito y la mitad de tus errores se evaporarán.


preguntasrán el

¿Qué es una calculadora de diferencia de fechas?

Una calculadora de diferencia de fechas calcula la brecha exacta entre dos fechas del calendario, expresadas en días, semanas, meses y años. A diferencia de las matemáticas mentales o la resta ingenua de milisegundos, aplica reglas de calendario reales (duración de meses variables, años bisiestos, reglas de siglos), por lo que el resultado es correcto en casos extremos como febrero en un año bisiesto o rangos que abarcan transiciones de horario de verano.

¿Cómo calculo el número de días entre dos fechas?

Ingrese ambas fechas en el Calculadora de diferencia de fecha y lea el recuento de días. Haciéndolo a mano, cuente los días restantes en el mes de inicio, agregue los meses completos entre ellos, luego agregue los días al mes de finalización y decida por adelantado si cuenta la fecha de finalización en sí. Esa última decisión, el conteo inclusivo versus el exclusivo, es donde la mayoría de los cálculos manuales salen mal en uno.

¿Se incluye la fecha de finalización cuando se cuentan los días entre fechas?

Por convención, no - el estándar "diferencia" es exclusivo, contando los intervalos entre fechas, por lo que de lunes a viernes son 4 días. Pero muchos contextos del mundo real (horarios de medicamentos, períodos de cobertura, duración de los eventos) cuentan inclusive, por lo que es 5. Ninguno de los dos está mal; responden preguntas diferentes. Indique siempre qué convención utiliza ' Se utiliza cuando el número entra en un contrato o factura.

¿Por qué mi JavaScript Date Math da una respuesta diferente?

Tres sospechosos habituales: new Date("YYYY-MM-DD") Analiza las cadenas de fechas desnudas como UTC medianoche, cambiando la fecha en un día en las zonas horarias occidentales; divide las diferencias de milisegundos en 86.400.000 de rupturas en las transiciones de DST donde un día es de 24 horas; y agrega meses con el objeto de fecha heredado se desborda al final del mes (31 de enero + 1 mes = 3 de marzo). Utilice una biblioteca con conocimiento de calendario como fecha-fns, luxon o la API temporal en lugar de aritmética sin procesar.

¿Cómo se cuentan los meses cuando tienen diferentes longitudes?

Las diferencias de meses se calculan en el calendario, no dividiendo los días por un promedio: del 15 de marzo al 15 de septiembre son exactamente 6 meses, aunque 's 184 días. La ambigüedad aparece con las fechas de anclaje después del 28; un mes después del 31 de enero generalmente se fija al 28 o 29 de febrero. Los sistemas de facturación de buen comportamiento se bloquean; El código ingenuo se desborda hasta principios de marzo, lo cual es un error genuino que vale la pena comprobar.

¿Afectan los años bisiestos a la diferencia de fecha?

Sí, cualquier rango que abarque el 29 de febrero en un año bisiesto (como 2024 o 2028) contiene un día más que el mismo rango en un año común, y las calculadoras correctas lo contabilizan automáticamente. La regla sutil: los años divisibles por 100 no son años bisiestos a menos que también sean divisibles por 400, por lo que 2000 fue un año bisiesto pero 2100 won 't be. Laminado a mano " divisible por 4" Los cheques fallan exactamente en esos años.

¿Cómo afectan las zonas horarias al cálculo de días entre fechas?

Una fecha simple es una ventana diferente de 24 horas en cada zona horaria, por lo que dos sistemas en diferentes zonas pueden legítimamente no estar de acuerdo sobre qué es "hoy" es - y una marca de tiempo cerca de la medianoche puede caer en diferentes fechas del calendario dependiendo de la zona utilizada para interpretarla. Para diferencias puras entre fechas y calendario, las zonas horarias no se aplican 't aplicar; Para fechas derivadas de marcas de tiempo, primero convierta ambas marcas de tiempo a la misma zona utilizando una herramienta como Convertidor de marca de tiempo.

¿La calculadora de diferencias de fechas Toolz.dev es gratuita y privada?

Sí en ambos aspectos. Se ejecuta completamente en su navegador sin registrarse; las fechas que ingresa nunca se cargan, registran ni almacenan en ningún lugar. Eso importa más de lo que parece, ya que los pares de fechas pueden codificar hechos confidenciales como períodos de empleo, cronogramas médicos o plazos legales, y ahí ' No hay ninguna razón técnica por la que una calculadora necesite verlos en el lado del servidor.

Frequently Asked Questions

A date difference calculator computes the exact gap between two calendar dates, expressed in days, weeks, months, and years. Unlike mental math or naive millisecond subtraction, it applies real calendar rules — variable month lengths, leap years, century rules — so the result is correct across edge cases like February in a leap year or ranges spanning daylight saving transitions.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!