Inicio y fin de la semana
Escriba un día y obtenga el primero y el último de su semana: el miércoles 3 de enero de 2024 está en la semana del lunes 1 al domingo 7 de enero. La semana empieza en lunes o en el día que usted elija. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Fecha
- 2024-01-03
- Primer día de la semana
- monday
- Índice del primer día
- 1
- Día de la semana
- wednesday
- Índice del día
- 3
- Días desde el inicio
- 2
Hallar el primer y el último día del calendario de la semana que contiene una fecha dada es una necesidad habitual en hojas de horas, tableros de sprint, calendarios escolares, periodos de nómina y paneles de informes. Quien busca una calculadora de inicio y fin de semana ya conoce un día dentro de la semana y necesita el tramo completo de lunes a domingo o de domingo a sábado sin contar con los dedos. Esta herramienta acepta una fecha de calendario ISO estricta en forma año-mes-día, un ajuste opcional del primer día de la semana (lunes por defecto para semanas estilo ISO, o domingo para semanas estilo EE. UU.), valida que el día exista realmente en el calendario gregoriano incluyendo febreros bisiestos, calcula el día de la semana con el método de Sakamoto y devuelve el inicio y el fin inclusivos de la semana como cadenas ISO más números de día juliano y el desplazamiento desde el inicio de la semana. Bases imposibles como el veintinueve de febrero en un año común fallan con un error de validación claro en lugar de enrollarse en silencio.
Cómo se calculan el inicio y el fin de la semana
Comience con una fecha de calendario civil escrita como año, mes y día en la forma ISO internacional con guiones y anchos fijos para que todo cliente coincida en los mismos tres enteros.
Confirme que el año esté en un rango gregoriano práctico desde el año uno hasta nueve mil novecientos noventa y nueve, que el mes esté entre uno y doce, y que el día exista para ese mes bajo las reglas bisiestas gregorianas: un año es bisiesto cuando es divisible por cuatro, salvo que los años de siglo solo son bisiestos cuando también son divisibles por cuatrocientos.
Esa regla hace legal el veintinueve de febrero en años como dos mil veinticuatro y dos mil, e ilegal en dos mil veintitrés y mil novecientos. Luego resuelva el ajuste del primer día de la semana: nombres en inglés sunday a saturday o índices numéricos de cero a seis con domingo igual a cero y lunes igual a uno, con lunes por defecto si se omite para que las semanas estilo ISO sean el camino habitual.
Calcule el día de la semana de la fecha dada con el método entero de Sakamoto, que nunca consulta el reloj del host. Convierta el día civil a un número de día juliano astronómico con la fórmula de Fliegel y Van Flandern, reste el desplazamiento modular que es el número de días desde el inicio de semana configurado y sume seis para obtener el fin de semana inclusivo. La conversión juliana inversa produce las cadenas ISO de inicio y fin.
Dónde aparecen las calculadoras de límites de semana en el trabajo real
Los gestores de programa y los scrum masters asignan cualquier día a mitad de sprint al bloque de lunes a domingo o con primer día personalizado que lo contiene para tableros de capacidad y gráficos de burndown. Los equipos de RR. HH. y nómina convierten un día trabajado en la semana de pago que lo contiene sin cargar una biblioteca completa de programación ni depender de la configuración regional del servidor.
Los docentes y administradores escolares convierten cualquier día de clase en el inicio y el fin de la semana para hojas de asistencia y comunicaciones a padres. Los ingenieros de analítica materializan claves de cubo semanal para paneles de modo que los eventos se agrupan por el inicio de semana civil en lugar de por truncamientos arbitrarios del reloj del host que se desplazan con el horario de verano.
Si más adelante necesita semanas enteras entre dos fechas, conteos de fines de semana dentro de un rango, el enésimo día de la semana de un mes, o la suma pura de días a una sola base, trátelos como intenciones de búsqueda y páginas de aterrizaje separadas en lugar de sobrecargar esta página de inicio y fin de semana.
Qué puede hacer con ella
Límites de semana para sprints y hojas de horas
Asigne cualquier fecha de trabajo a mitad de semana al rango inclusivo de lunes a domingo o de domingo a sábado para hojas de horas, tableros de sprint e informes de capacidad sin deriva de zona horaria del host.
Periodos de nómina y asistencia
Convierta un día trabajado o de clase en las cadenas ISO de inicio y fin de semana usadas por ciclos de nómina, hojas de asistencia escolar y calendarios orientados a padres.
Preguntas frecuentes
¿Qué significa inicio y fin de la semana?
Significa el primer y el último día civil del calendario de la semana de siete días que contiene su fecha, según un ajuste de primer día como lunes o domingo, sin reglas de días hábiles ni reloj de pared.
¿Cuál es el primer día de la semana por defecto?
Lunes, acorde con las semanas estilo ISO habituales. UU., o cualquier otro nombre de día o índice 0–6.
¿Qué formato de fecha se exige?
ISO estricto YYYY-MM-DD con año de cuatro dígitos y mes y día de dos dígitos. Valores como 2024-1-3 o 2024/01/03 se rechazan para que todo cliente coincida.
¿Qué ocurre con una fecha inválida como 2023-02-29?
El mensaje de error explica que el día no es válido para ese año y mes en el campo date.
¿Cuánto cuesta?
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/week-start-end \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2024-01-03"}'const res = await fetch("https://api.kit.forhosting.com/date/week-start-end", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2024-01-03"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/week-start-end",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2024-01-03"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/week-start-end", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2024-01-03"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2024-01-03"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/week-start-end", 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": "2024-01-03"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.week_start_end",
"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
Qué envía usted y qué recibe a cambio
Envíe un campo de cadena obligatorio date como un día de calendario ISO estricto como dos mil veinticuatro guion cero uno guion cero tres, y un first_weekday opcional como monday o sunday o un índice de cero a seis. Un date ausente, valores que no son cadena, cadenas que no coinciden con el patrón de dígitos cuatro-dos-dos, fechas que coinciden con el patrón pero no son días de calendario reales, y tokens de día de la semana desconocidos fallan con invalid_input y no se cobran. En caso de éxito la respuesta repite la fecha normalizada, el nombre e índice de first_weekday resuelto, el nombre e índice del día de la semana del día de entrada, days_from_start como el desplazamiento de cero a seis desde el inicio de la semana, week_start y week_end como cadenas ISO inclusivas, números de día juliano para la entrada y ambos límites, length_days siempre siete, y una cadena breve de fórmula que documenta el camino Sakamoto y JDN. Comprobaciones clásicas incluyen el miércoles tres de enero de dos mil veinticuatro con semanas que empiezan en lunes dando del primero al séptimo de enero, la misma fecha con semanas que empiezan en domingo dando del treinta y uno de diciembre de dos mil veintitrés al seis de enero de dos mil veinticuatro, y una entrada que ya es el primer día de la semana devolviendo ese día como week_start con days_from_start cero. El precio de las llamadas API exitosas es la base publicada de $0.002 por elemento; los fallos de validación no consumen saldo prepago.
Dónde aparecen las calculadoras de límites de semana en el trabajo real
Como esta capacidad es un motor de parse puro, el precio de la API es la base publicada de $0.002 por elemento exitoso y la validación fallida no consume saldo.
Casos de integración
Claves de cubo semanal para analítica
Derive claves week_start civiles estables para agrupación de eventos y paneles de cohortes de modo que los cubos sigan la misma regla de primer día en todos los entornos.