Início e fim da semana ISO
Digite qualquer dia e receba a segunda-feira que abre a semana ISO dele e o domingo que a fecha: 3 de janeiro de 2024 está na semana de 1 a 7 de janeiro de 2024. As duas datas contam. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Data
- 2024-01-03
- Ano
- 2.024
- Mês
- 1
- Dia
- 3
- Dia da semana ISO
- 3
Esta calculadora de início e fim da semana ISO recebe uma única data do calendário gregoriano no formato YYYY-MM-DD e devolve a segunda-feira que abre a semana ISO-8601 que contém esse dia e o domingo que a fecha. As semanas ISO sempre vão de segunda a domingo e nunca dependem do primeiro dia da semana da localidade, por isso folha de pagamento, packs de fabricação, rótulos de sprint ágil e relatórios transfronteiriços as preferem em relação às semanas no estilo dos EUA que começam no domingo. Verificações clássicas incluem 2024-01-03, que corresponde à semana de 2024-01-01 a 2024-01-07, e 2021-01-01, que corresponde à semana de 2020-12-28 a 2021-01-03 porque aquela sexta-feira ainda pertence à semana 53 do ano-semana 2020. O motor usa apenas aritmética de calendário inteira e determinística: anos bissextos, comprimentos de mês, dia da semana ISO, deslocamentos de número do dia juliano e regras de limite de número de semana são calculados sem chamadas de rede, sem amostragem aleatória e sem o relógio do sistema.
O que significam o início e o fim da semana ISO e o que a resposta contém
As datas de semana ISO-8601 localizam um dia civil dentro de uma janela de sete dias baseada na segunda-feira, numerada de 1 a 52 ou 53 dentro de um ano de numeração de semana. A semana 1 é definida como a semana que contém a primeira quinta-feira do ano, o que equivale à semana que contém 4 de janeiro.
Por essa regra, o final de dezembro e o início de janeiro podem pertencer a um ano-semana diferente do ano civil impresso na fatura, e a segunda de início ou o domingo de fim podem cair em um mês ou ano de calendário diferente do dia de entrada. Casos rejeitados incluem date ausente, formato errado como 2024/01/03, meses impossíveis e dias que não existem como 2023-02-29.
Se você precisar de um primeiro dia da semana personalizado, só do número da semana, ou da conversão de ano-semana mais semana em uma data, use essas ferramentas dedicadas; esta página responde apenas os limites da janela de semana ISO para uma data de calendário validada.
Como a data é lida e como a janela segunda–domingo permanece reproduzível
A string deve combinar com quatro dígitos, um hífen, dois dígitos, outro hífen e dois dígitos; espaços no início ou no fim são removidos, mas datas parciais, o dia do ano ordinal sozinho e nomes de mês não são expandidos aqui. Após o parse, o ano deve ficar entre 1 e 9999, o mês entre 1 e 12, e o dia entre 1 e o comprimento real daquele mês naquele ano, com anos bissextos seguindo a regra gregoriana de divisível por quatro exceto séculos não divisíveis por quatrocentos.
O mesmo caminho também deriva o número da semana ISO como o piso de dia do ano menos dia da semana mais dez, tudo dividido por sete, com ajuste de ano-semana quando a semana provisória é menor que um ou excede o número de semanas do ano civil. Um ano tem cinquenta e três semanas ISO quando o primeiro ou o último dia é uma quinta-feira.
Casos de uso
Intervalos de data para relatórios semanais
Transforme qualquer dia de fatura ou log em limites inclusivos segunda–domingo ISO para painéis, packs de varejo e relatórios de operações.
Janelas de semana na virada do ano
Resolva datas de final de dezembro e início de janeiro cuja semana ISO começa ou termina em outro ano civil antes de fechar os livros.
Perguntas frequentes
Por que a segunda ou o domingo podem cair em outro mês ou ano?
As semanas ISO são blocos contínuos de sete dias. Uma quarta-feira no início de janeiro ainda pode pertencer a uma semana que começou no final de dezembro do ano civil anterior.
Isto converte fusos horários ou usa o relógio atual?
Não. Apenas mapeia uma data de calendário validada para limites segunda–domingo de semana ISO com aritmética pura.
A segunda e o domingo entram no intervalo?
Sim. As duas pontas são incluídas, então o intervalo sempre tem sete dias: para 3 de janeiro de 2024 ele vai da segunda, dia 1, ao domingo, dia 7 de janeiro.
Dá para fazer a semana começar no domingo?
Não. A semana ISO sempre vai de segunda a domingo e esse início não muda, o que mantém alinhados relatórios de países diferentes. Para semanas que começam no domingo, use uma ferramenta feita para essa convenção.
O que mais aparece no resultado?
Além das duas datas, aparecem o número do dia da semana da sua data, quantos dias ela está depois da segunda, o número da semana ISO e o ano-semana com um rótulo como 2024-W01.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/date/iso-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/iso-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/iso-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/iso-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/iso-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)Exemplo de requisição
{
"date": "2024-01-03"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.iso_week_start_end",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Use grátis no navegador para planilhas de planejamento e checagens de conformidade, ou chame a API por US$ 0,002 por solicitação bem-sucedida quando precisar de limites de janela semanal reproduzíveis em CI, pipelines de relatórios ou recursos de produto.
O que significam o início e o fim da semana ISO e o que a resposta contém
Esta calculadora aceita um campo obrigatório, date, como string estrita YYYY-MM-DD, valida que o dia realmente existe no calendário gregoriano — incluindo 29 de fevereiro só em anos bissextos e o comprimento correto de cada mês — e então devolve a data normalizada, o ano, mês e dia civis, o dia da semana ISO de 1 para segunda a 7 para domingo com um nome legível, quantos dias após a segunda a entrada se situa, week_start e week_end como datas ISO inclusivas, o número da semana ISO e o ano-semana com uma string compacta iso_week_string como 2020-W53, quantas semanas aquele ano-semana contém, o ordinal do dia do ano, âncoras de número do dia juliano para a entrada e os extremos da semana, length_days igual a sete, e um breve lembrete da fórmula. Não há conversão de fuso horário, nem primeiro dia da semana configurável, nem aproximação de ponto flutuante: ou a entrada é um dia real do calendário e o par segunda–domingo fica totalmente determinado, ou a solicitação falha com invalid_input.
Como a data é lida e como a janela segunda–domingo permanece reproduzível
O campo preferido é date, mas os aliases iso_date, d e value são aceitos para que planilhas, query strings e formulários tipados reutilizem o mesmo contrato sem renomear colunas. A partir da tripla validada, o motor calcula o dia da semana ISO pelo método inteiro puro de Sakamoto, mapeado para que segunda seja um e domingo seja sete, converte o dia civil em um número do dia juliano astronômico com o algoritmo de Fliegel–Van Flandern, subtrai days_from_monday igual a iso_weekday menos um para chegar à segunda, e soma seis dias para chegar ao domingo. Combine a execução gratuita no navegador desta página com a API cobrada quando precisar da mesma janela semanal dentro de um pipeline automatizado.
Onde o início e o fim da semana ISO se encaixam em planejamento, relatórios e software
Equipes de operações e finanças precisam da segunda e do domingo de uma semana ISO quando uma cadência semanal deve alinhar países que não começam todos a semana no domingo: cronogramas de fabricação, packs de varejo, rótulos de sprint ágil e relatórios estatutários que citam semana do ano se beneficiam de uma janela inclusiva inequívoca. Desenvolvedores chamam o mesmo contrato a partir de scripts para carimbar buckets de log, gerar intervalos padrão de planilha de horas ou produzir vetores de teste determinísticos para sistemas de folha que fecham no domingo à noite. Educadores e redatores de normas usam a ferramenta para demonstrar datas de fronteira como 2005-01-01 em uma semana que começou em dezembro de 2004, sem depender de números seriais de planilha que diferem entre Excel e ISO. Analistas que montam painéis ano a ano evitam filtros com erro de um quando armazenam tanto week_start quanto week_end em vez de só um número de semana que ainda precisa ser expandido em predicados de data. Nesta página o trabalho roda inteiramente no seu navegador; pela API cada consulta bem-sucedida custa US$ 0,002, validação falha não é cobrada, e nada é armazenado após a resposta retornar. Essa divisão — exploração interativa gratuita e uma API cobrada idêntica — combina com o restante do catálogo tier A do KIT e permite ir de uma checagem pontual a um pipeline sem mudar o resultado matemático. Combine com a consulta de número de semana ISO quando precisar só do id da semana, com week_start_end configurável quando o primeiro dia da semana da localidade importar, e com outros auxiliares determinísticos gratuitos ao montar um pequeno laboratório de utilitários de data.
Casos de integração
Fixtures de teste determinísticos
Gere valores reproduzíveis de week_start e week_end para testes unitários, checagens de propriedade e asserções de CI sem desvio de Date.
Perguntas técnicas
Quanto custa a calculadora de início e fim da semana ISO?
É grátis no seu navegador nesta página. Pela API, uma solicitação bem-sucedida custa US$ 0,002; entradas inválidas não são cobradas.
Quais dias são week_start e week_end?
Segundo a ISO-8601, week_start é sempre segunda-feira e week_end é sempre domingo. Não há opção de começar a semana no domingo ou em outro dia.
Quais formatos de data são aceitos?
Apenas datas de calendário estritas YYYY-MM-DD. Valores como 2024/01/03, 01-03-2024 ou 2023-02-29 (não bissexto) são rejeitados com invalid_input.