Calculadora de años de servicio
Quien entró el 15 de marzo de 2018 suma 8 años, 4 meses y 10 días de servicio al 25 de julio de 2026. Escriba la fecha de alta y la de corte para comprobar premios por antigüedad o periodos de consolidación en años cumplidos. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Fecha de contratación
- 2018-03-15
- Fecha de referencia
- 2026-07-25
- Años de servicio
- 8
- Meses
- 4
- Días
- 10
- Días totales
- 3 054
Los equipos de RR. HH., ingeniería de nómina y administración de beneficios buscan una calculadora de años de servicio cuando necesitan la antigüedad completada entre la fecha de alta y una fecha de corte que no se desplace con el reloj del servidor. Esta capacidad acepta la fecha de inicio del empleo y una fecha de referencia obligatoria, aplica reglas gregorianas prolépticas con ajuste a fin de mes y devuelve años de servicio enteros completados más meses y días restantes. Úsela cuando el texto del producto hable de cinco años de servicio, insignias de diez años o acantilados de consolidación medidos en años de calendario completados, no en conteos de días divididos entre trescientos sesenta y cinco.
Cómo se cuentan los años, meses y días completados
Los campos months y days completan el tramo residual tras esos años enteros, de modo que los paneles pueden mostrar tanto el umbral de consolidación como un resto legible. El algoritmo mide meses de calendario completos desde el alta hacia la referencia, ajustando el día del mes cuando el mes destino es más corto: un alta el treinta y uno de enero avanza un mes hasta el último día de febrero en años bisiestos y no bisiestos.
Si esa fecha provisional al avanzar meses rebasara la referencia, el motor retrocede un mes e informa el tramo restante en días civiles enteros. Los años de servicio son el total de meses enteros dividido entre doce; los meses, el resto módulo doce; los días cierran el triple. Este desglose se alinea mejor con el lenguaje habitual de RR.
HH. sobre años de servicio completados que dividir los días totales por una longitud media fija de año, que se desvía en bisiestos y meses largos.
Antigüedad para beneficios y límites del cálculo
Use la calculadora gratuita de años de servicio en el navegador para demos de RR. HH., autoservicio de mandos y comprobaciones puntuales de premios sin instalar bibliotecas de fechas ni enviar una base de zonas horarias a cada cliente.
Combine este extremo con una herramienta de conteo de días cuando solo necesite la longitud del tramo, o con una de edad en años, meses y días cuando el producto deba calcular edad civil desde un nacimiento y no antigüedad laboral desde un alta: son intenciones de búsqueda y nombres de campo distintos aunque la aritmética de calendario esté emparentada.
Mantenga expectativas honestas: esta capacidad mide la antigüedad civil gregoriana entre dos fechas explícitas; no omite fines de semana como antigüedad laboral, no carga calendarios de festivos, no aplica tablas de aniversario sindicales, no prorratea premios de año parcial ni fija la referencia al día de hoy en el servidor. Las entradas siguen las mismas reglas de retención que otros ítems parse del KIT.
Como la implementación es parse pura de nivel A, cada llamada correcta sigue siendo barata, determinista y libre de tokens de modelo o red saliente, exactamente lo que necesitan las suites de regresión al fijar casos de aniversario durante décadas de fechas de alta.
Preguntas frecuentes
¿Qué ocurre si la fecha de referencia es anterior al alta?
Los años de servicio no pueden ser negativos; corrija el par o intercambie campos solo si su producto mide a propósito una fecha de inicio futura.
¿Cómo se tratan altas en día bisiesto y aniversarios de fin de mes?
Meses y años avanzan con ajuste al último día válido del mes destino. Un alta el 29 de febrero pasa a 28 de febrero en aniversarios de años no bisiestos, según la práctica civil habitual en RR. HH.
¿Cuánto cuesta la calculadora de años de servicio?
La herramienta en el navegador es gratuita en su dispositivo.
¿Por qué no basta con dividir los días trabajados entre 365?
Porque los premios y las reglas de consolidación cuentan años de calendario cumplidos, y los bisiestos hacen que un recuento de días se desvíe. Contar años, luego meses y luego días da la cifra que la política de personal quiere decir.
¿Se calcula la antigüedad hasta hoy automáticamente?
No. La fecha de referencia siempre es obligatoria y no se lee ningún reloj, así que las mismas dos fechas dan la misma antigüedad en cualquier equipo, país o momento.
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/years-of-service \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hire_date":"2018-03-15","reference_date":"2026-07-25"}'const res = await fetch("https://api.kit.forhosting.com/date/years-of-service", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hire_date": "2018-03-15",
"reference_date": "2026-07-25"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/years-of-service",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hire_date": "2018-03-15",
"reference_date": "2026-07-25"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/years-of-service", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hire_date":"2018-03-15","reference_date":"2026-07-25"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hire_date":"2018-03-15","reference_date":"2026-07-25"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/years-of-service", 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
{
"hire_date": "2018-03-15",
"reference_date": "2026-07-25"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.years_of_service",
"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
Los días de calendario inválidos y los pares de fechas invertidos fallan con invalid_input y no se facturan; los ítems correctos cuestan $0.002 del saldo KIT.
Fecha de alta, fecha de referencia y por qué no se usa el reloj
Cada valor debe ser un día civil en forma YYYY-MM-DD, por ejemplo dos mil dieciocho guion cero tres guion quince para el alta y dos mil veintiséis guion cero siete guion veinticinco para la instantánea de evaluación. Puede enviar un prefijo de fecha-hora ISO-8601 completo; si hay hora, solo se usa la parte de calendario, porque los años de servicio para beneficios son una medida de fecha a fecha, no una duración de reloj con zonas horarias. Los años van de uno a nueve mil novecientos noventa y nueve, los meses de uno a doce, y el día debe existir en ese mes bajo reglas de bisiesto gregorianas, incluido el veintinueve de febrero solo en años bisiestos. Si la fecha de referencia cae estrictamente antes del alta, la petición falla con un mensaje claro de que los años de servicio no pueden ser negativos, en lugar de inventar una antigüedad con signo que la mayoría de interfaces etiquetarían mal como servicio completado. Envíe dos campos de cadena obligatorios: hire_date y reference_date. Los alias opcionales hire, start_date, employment_start y from se asocian al campo de alta; reference, as_of, to, on y evaluation_date al de referencia, para que formularios de RR. HH. y SDK conserven nombres habituales. Ambos campos son obligatorios a propósito: una calculadora de antigüedad que sustituye en silencio el reloj del anfitrión produce respuestas distintas en CI, en un portátil de otra región y en un trabajador de API en UTC, lo que rompe auditorías de premios y exportaciones de nómina reproducibles. Pares imposibles como dos mil veintitrés guion cero dos guion veintinueve se rechazan con invalid_input en lugar de forzarlos a marzo.
Cómo se cuentan los años, meses y días completados
En caso de éxito la respuesta repite hire_date y reference_date normalizados como YYYY-MM-DD, y luego years_of_service como el recuento de años de calendario enteros de antigüedad completados—el número que suelen significar las reglas de elegibilidad cuando dicen cinco años de servicio. El campo total_days es la diferencia civil exclusiva entre los dos ordinales: el mismo día de calendario da cero total_days y cero años de servicio, mientras que el día siguiente da un día de servicio. Los campos last_anniversary y next_anniversary son las fechas de aniversario de alta tras years_of_service y years_of_service más un año completado, con altas del veintinueve de febrero ajustadas al veintiocho de febrero en años destino no bisiestos.
Uso de la API, precios, flujos de beneficios y límites honestos
Haga POST de un cuerpo JSON compacto con las cadenas hire_date y reference_date. Llame a la API de prepago cuando lotes de nómina, umbrales de consolidación de capital, tramos de devengo de PTO o programas de premios por servicio necesiten un contrato estable con saldo KIT a $0.002 por ítem correcto; los fallos de validación no consumen saldo tras el rechazo del motor. Los autores de SDK pueden mapear years_of_service a una insignia principal de elegibilidad y mostrar months, days y la cadena formatted en etiquetas de accesibilidad, con la misma forma de respuesta en cada enlace de idioma.
Casos de integración
Premios de servicio y programas de reconocimiento
Evalúe hire_date frente a una ceremonia de premios o a un reference_date de corte fiscal para decidir quién ha completado cinco, diez o veinte años de servicio antes de imprimir certificados.
Consolidación de beneficios y umbrales de elegibilidad
Condicione la consolidación de aportaciones, permisos por larga antigüedad o ayudas de estudios a years_of_service completados desde el inicio del empleo hasta una fecha de evaluación del plan.
Exportaciones por lotes de nómina y HRIS
Capture la antigüedad de cada empleado frente a una sola fecha as-of de nómina para que informes y pruebas golden reproduzcan los mismos años, meses y días en cada ejecución.
Preguntas técnicas
¿Cómo se calculan los años de servicio desde una fecha de alta?
Envíe JSON con hire_date y reference_date en YYYY-MM-DD. La respuesta incluye years_of_service (años enteros completados), months, days, total_days, last_anniversary, next_anniversary y una cadena formatted.
¿Usa automáticamente la fecha de hoy?
No. reference_date es obligatorio. El motor nunca lee el reloj del sistema, así que los resultados son idénticos en CI, navegadores y trabajadores de API.