Início e fim da semana
Digite um dia e receba o primeiro e o último dia da semana dele: quarta-feira, 3 de janeiro de 2024, fica na semana de segunda, 1º, a domingo, 7 de janeiro. A semana começa na segunda ou no dia que você escolher. 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
- Primeiro dia da semana
- monday
- Índice do primeiro dia
- 1
- Dia da semana
- wednesday
- Índice do dia
- 3
- Dias desde o início
- 2
Encontrar o primeiro e o último dia do calendário da semana que contém uma data dada é uma necessidade comum em planilhas de horas, quadros de sprint, calendários escolares, períodos de folha de pagamento e painéis de relatórios. Quem busca uma calculadora de início e fim de semana já conhece um dia dentro da semana e precisa do intervalo completo de segunda a domingo ou de domingo a sábado sem contar nos dedos. Esta ferramenta aceita uma data de calendário ISO estrita no formato ano-mês-dia, uma configuração opcional do primeiro dia da semana (segunda por padrão para semanas estilo ISO, ou domingo para semanas estilo EUA), valida que o dia realmente existe no calendário gregoriano incluindo fevereiros bissextos, calcula o dia da semana com o método de Sakamoto e devolve o início e o fim inclusivos da semana como strings ISO mais números de dia juliano e o deslocamento desde o início da semana. Bases impossíveis como vinte e nove de fevereiro em um ano comum falham com um erro de validação claro em vez de enrolar em silêncio.
Como o início e o fim da semana são calculados
Comece com uma data de calendário civil escrita como ano, mês e dia na forma ISO internacional com hífens e larguras fixas para que todo cliente concorde nos mesmos três inteiros.
Confirme que o ano está em um intervalo gregoriano prático do ano um até nove mil novecentos e noventa e nove, que o mês está entre um e doze, e que o dia existe para aquele mês sob as regras bissextas gregorianas: um ano é bissexto quando é divisível por quatro, exceto que anos seculares só são bissextos quando também são divisíveis por quatrocentos.
Essa regra torna legal o vinte e nove de fevereiro em anos como dois mil e vinte e quatro e dois mil, e ilegal em dois mil e vinte e três e mil novecentos. Em seguida resolva a configuração do primeiro dia da semana: nomes em inglês sunday até saturday ou índices numéricos de zero a seis com domingo igual a zero e segunda igual a um, com segunda por padrão quando omitido para que semanas estilo ISO sejam o caminho comum.
Calcule o dia da semana da data dada com o método inteiro de Sakamoto, que nunca consulta o relógio do host. Converta o dia civil em um número de dia juliano astronômico com a fórmula de Fliegel e Van Flandern, subtraia o deslocamento modular que é o número de dias desde o início da semana configurado e some seis para obter o fim inclusivo da semana. A conversão juliana inversa produz as strings ISO de início e fim.
Onde calculadoras de limites de semana aparecem no trabalho real
Gerentes de programa e scrum masters mapeiam qualquer dia no meio do sprint para o bloco de segunda a domingo ou com primeiro dia personalizado que o contém para quadros de capacidade e gráficos de burndown. Equipes de RH e folha de pagamento convertem um dia trabalhado na semana de pagamento que o contém sem carregar uma biblioteca completa de agendamento nem depender da localidade do servidor.
Professores e administradores escolares transformam qualquer dia de aula no início e no fim da semana para planilhas de presença e comunicações com os pais. Engenheiros de analytics materializam chaves de bucket semanal para painéis de modo que eventos são agrupados pelo início de semana civil em vez de truncamentos arbitrários do relógio do host que mudam com o horário de verão.
Se mais tarde você precisar de semanas inteiras entre duas datas, contagens de fins de semana dentro de um intervalo, o enésimo dia da semana de um mês, ou adição pura de dias a uma única base, trate isso como intenções de busca e páginas de aterrissagem separadas em vez de sobrecarregar esta página de início e fim da semana.
Casos de uso
Limites de semana para sprint e planilha de horas
Mapeie qualquer data de trabalho no meio da semana para o intervalo inclusivo de segunda a domingo ou de domingo a sábado para planilhas de horas, quadros de sprint e relatórios de capacidade sem deriva de fuso do host.
Períodos de folha e presença
Converta um dia trabalhado ou de aula nas strings ISO de início e fim de semana usadas por ciclos de folha, planilhas de presença escolar e calendários voltados aos pais.
Perguntas frequentes
O que significa início e fim da semana?
Significa o primeiro e o último dia civil do calendário da semana de sete dias que contém sua data, segundo uma configuração de primeiro dia como segunda ou domingo, sem regras de dias úteis nem relógio de parede.
Qual formato de data é exigido?
ISO estrito YYYY-MM-DD com ano de quatro dígitos e mês e dia de dois dígitos. Valores como 2024-1-3 ou 2024/01/03 são rejeitados para que todo cliente concorde.
O que acontece com uma data inválida como 2023-02-29?
A mensagem de erro explica que o dia não é válido para aquele ano e mês no campo date.
Quanto custa?
A ferramenta do navegador é gratuita e roda localmente.
Em que dia a semana começa por padrão?
Na segunda-feira, como nas semanas no estilo ISO. Você pode escolher o domingo, como nos Estados Unidos, ou outro dia, e a semana devolvida sempre tem sete dias e contém a data informada.
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/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)Exemplo de requisição
{
"date": "2024-01-03"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.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
O que você envia e o que recebe de volta
Envie um campo de string obrigatório date como um dia de calendário ISO estrito como dois mil e vinte e quatro hífen zero um hífen zero três, e um first_weekday opcional como monday ou sunday ou um índice de zero a seis. Date ausente, valores que não são string, strings que não batem com o padrão de dígitos quatro-dois-dois, datas que batem com o padrão mas não são dias de calendário reais, e tokens de dia da semana desconhecidos falham com invalid_input e não são cobrados. Em caso de sucesso a resposta ecoa a data normalizada, o nome e o índice de first_weekday resolvido, o nome e o índice do dia da semana do dia de entrada, days_from_start como o deslocamento de zero a seis desde o início da semana, week_start e week_end como strings ISO inclusivas, números de dia juliano para a entrada e ambos os limites, length_days sempre sete, e uma string curta de fórmula que documenta o caminho Sakamoto e JDN. Verificações clássicas incluem a quarta-feira três de janeiro de dois mil e vinte e quatro com semanas que começam na segunda gerando do primeiro ao sétimo de janeiro, a mesma data com semanas que começam no domingo gerando de trinta e um de dezembro de dois mil e vinte e três a seis de janeiro de dois mil e vinte e quatro, e uma entrada que já é o primeiro dia da semana devolvendo esse dia como week_start com days_from_start zero. O preço de chamadas API bem-sucedidas é a base publicada de US$ 0,002 por item; falhas de validação não consomem saldo pré-pago.
Onde calculadoras de limites de semana aparecem no trabalho real
Como esta capacidade é um motor de parse puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido e a validação falha não consome saldo.
Casos de integração
Chaves de bucket semanal para analytics
Derive chaves week_start civis estáveis para agrupamento de eventos e painéis de coorte de modo que os buckets sigam a mesma regra de primeiro dia em todo ambiente.
Perguntas técnicas
Qual é o primeiro dia da semana padrão?
Segunda-feira, alinhado às semanas estilo ISO comuns. Passe first_weekday como sunday (ou 0) para semanas estilo EUA, ou qualquer outro nome de dia ou índice 0–6.