Calculadora de congruencia de Zeller
El 25 de julio de 2026 es sábado: la congruencia de Zeller suma 25, 20, 26, 6, 5 y −40 hasta llegar a 42, cuyo resto al dividir entre 7 es 0, el código del sábado. Se muestra cada paso para rehacerlo a mano. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Fecha
- 2026-07-25
- Año
- 2 026
- Mes
- 7
- Día
- 25
- Día de la semana
- 6
Una calculadora de la congruencia de Zeller convierte una sola fecha de calendario gregoriano ISO en el nombre del día de la semana ejecutando la fórmula clásica de aritmética modular y mostrando cada término intermedio. Introduzca una fecha como YYYY-MM-DD; la herramienta valida que el día exista en el calendario —incluidas las reglas de febrero bisiesto—, aplica el desplazamiento de mes de Zeller para enero y febrero, construye las variables de siglo y año-dentro-del-siglo K y J, evalúa los términos de piso, reduce la suma módulo siete y mapea h a nombres de sábado a viernes más números de día de la semana ISO.
Qué calcula la congruencia de Zeller y por qué importan los pasos
La congruencia de Zeller es una fórmula modular cerrada que mapea un triple de calendario gregoriano —año, mes y día del mes— a un índice de día de la semana sin consultar una tabla de calendario. En la forma gregoriana común usada aquí, el día del mes es q, el mes se renumera de modo que marzo es tres y febrero es catorce del año anterior, K es el año dentro del siglo y J es el siglo de base cero, piso del año entre cien.
La fórmula es h igual a la suma de q, el piso de trece veces m más uno entre cinco, K, el piso de K entre cuatro, el piso de J entre cuatro, y menos dos veces J, todo módulo siete. El h resultante usa la convención de origen sábado: cero significa sábado, uno domingo, dos lunes, y así hasta seis para el viernes.
Esa convención no es la misma que los números de día de la semana ISO-8601, por lo que esta herramienta también convierte h en lunes-igual-a-uno hasta domingo-igual-a-siete y en un índice de origen domingo de cero a seis para quienes necesitan esos codificados. Mostrar cada término de piso y la suma bruta antes del módulo es el punto pedagógico: un aprendiz puede recomputar ⌊13(m+1)/5⌋ a mano y afirmar que los pasos publicados coinciden. Hojas de clase, libros de algoritmos y drills de entrevistas de código dependen de esa transparencia.
La ruta de comprobación también rechaza fechas que no son días reales de calendario, porque la fórmula de Zeller asume un día gregoriano genuino; alimentarla con 2023-02-29 inventaría un día de la semana para un día que nunca existió.
Consejos prácticos, límites y búsquedas relacionadas
Prefiera enviar una cadena ISO estricta en lugar de prosa libre; el parser no acepta nombres de mes, barras ni orden europeo de día primero. Al enseñar, empareje una fecha de mitad de año como 2026-07-25 con un ejemplo de enero para que los estudiantes vean el decremento de año y el desplazamiento de mes más doce en los pasos.
Mantenga los años dentro de la banda publicada de uno a nueve mil novecientos noventa y nueve para que la matemática de siglos se mantenga simple y coherente con los topes de fechas hermanas.
Esta página apunta a quienes buscan una calculadora de congruencia de Zeller, un algoritmo de día de la semana paso a paso o una fórmula modular de calendario en línea; no es un convertidor histórico completo de transiciones juliano-gregoriano, ni un contador de días laborables, ni una herramienta de día de la semana de caja negra que oculta la aritmética.
Prefiera una calculadora más simple de día de la semana cuando solo necesite el nombre sin intermedios de Zeller; prefiera esta capacidad cuando el objetivo educativo es la congruencia en sí.
Qué puede hacer con ella
Ejemplos resueltos de aritmética modular en clase
El docente proyecta una fecha, recorre cada término de piso de Zeller en el array steps y deja que el alumnado verifique h y el nombre del día antes de entregar la tarea.
Documentación de algoritmos y preparación de entrevistas
Los candidatos contrastan su congruencia escrita a mano con q, m, K, J, suma bruta y h publicados sin depender de bibliotecas Date del lenguaje.
Preguntas frecuentes
¿Qué es la congruencia de Zeller?
Una fórmula de aritmética modular que calcula el día de la semana de una fecha gregoriana a partir del día, el mes renumerado, el año-dentro-del-siglo K y el siglo J, sin consultar una tabla de calendario.
¿Qué significa h en el resultado?
h es el índice de día de la semana de Zeller: 0 = sábado, 1 = domingo, 2 = lunes, …, 6 = viernes.
¿Por qué enero se convierte en el mes 13?
Zeller trata enero y febrero como los meses 13 y 14 del año anterior para que el término de mes de la fórmula se mantenga continuo de marzo a febrero.
¿Qué ocurre con 2023-02-29?
Ese día no es una fecha gregoriana válida (2023 no es bisiesto).
¿Es gratuita la calculadora de congruencia de Zeller?
La herramienta del navegador es gratuita y se ejecuta en local.
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/zeller-weekday \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2026-07-25"}'const res = await fetch("https://api.kit.forhosting.com/date/zeller-weekday", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2026-07-25"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/zeller-weekday",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2026-07-25"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/zeller-weekday", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2026-07-25"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2026-07-25"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/zeller-weekday", 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
{
"date": "2026-07-25"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.zeller_weekday",
"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.
Límites
year_min | 1 |
year_max | 9999 |
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
Cadenas inválidas, meses imposibles y el 29 de febrero no bisiesto devuelven un error invalid_input claro en lugar de una respuesta incorrecta silenciosa. El camino es aritmética entera determinista pura —sin red, sin semillas aleatorias, sin objetos Date de reloj de pared—, de modo que el ejecutor gratuito del navegador y la API prepago devuelven el mismo JSON cada vez que se invoca.
Cómo invocar la API y qué vuelve
Los años deben estar entre uno y nueve mil novecientos noventa y nueve inclusive. El día debe existir en ese mes bajo las reglas bisiestas gregorianas prolépticas —febrero tiene veintinueve días solo cuando el año es divisible por cuatro, salvo años seculares no divisibles por cuatrocientos. Envíe un cuerpo JSON con un campo de cadena obligatorio: date (alias iso_date, value y day) exactamente en forma YYYY-MM-DD con año de cuatro dígitos y mes y día de dos dígitos. En caso de éxito la respuesta repite la fecha canónica, año, mes y día, asigna day_name y day_name_short a las etiquetas inglesas del día de la semana, asigna iso_weekday, day_of_week y day_number al código ISO de lunes-igual-a-uno hasta domingo-igual-a-siete, asigna weekday_0_sunday al índice de origen domingo, y publica los intermedios brutos de Zeller zeller_h, zeller_q, zeller_m, zeller_Y, zeller_K y zeller_J junto con formula, h_meaning, leap_year, message y un array ordenado steps que recorre el desplazamiento de enero–febrero, cada término de piso, la suma bruta y el mapeo final de nombres. La validación fallida —campos ausentes, valores no cadena, formato incorrecto, años fuera de rango, meses o días imposibles— devuelve invalid_input y nunca se cobra. El precio es un $0.002 fijo por petición exitosa con unidad item y precio unitario marginal cero.
Consejos prácticos, límites y búsquedas relacionadas
Contraste un sábado o lunes conocido con un calendario impreso y confirme que zeller_h e iso_weekday coinciden con los mapeos documentados. Las tareas fallidas que devuelven invalid_input no consumen saldo prepago, lo que mantiene baratos los scripts exploratorios cuando los aprendices prueban deliberadamente 2023-02-29.
Casos de integración
Pruebas unitarias de implementaciones de calendario
Genere intermedios de Zeller conocidos y rechazos de fechas de calendario inválidas como fixtures deterministas para valores esperados en katas de código.