Dias de fim de semana entre datas
Janeiro de 2024 tem 8 dias de fim de semana: 4 sábados e 4 domingos. Digite duas datas quaisquer e receba a mesma divisão para o seu período, com as duas pontas incluídas, para planejar escalas, horas extras ou folgas. 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
- Início
- 2024-01-01
- Fim
- 2024-01-31
- JDN início
- 2.460.311
- JDN fim
- 2.460.341
- Dia sem. início
- Monday
- Dia sem. fim
- Wednesday
Saber quantos dias de fim de semana caem entre duas datas do calendário é uma necessidade prática em planos de equipe, regras de hora extra, reservas de viagem, logística de eventos e cálculo de férias. Quem busca um contador de sábados e domingos entre datas quer totais separados ou combinados, não um intervalo bruto de dias que ainda precise filtrar à mão. Esta ferramenta aceita duas datas ISO estritas no formato ano-mês-dia, valida se cada dia existe de fato no calendário gregoriano —incluindo fevereiros bissextos—, converte ambas em números de dia juliano astronômico com uma fórmula inteira pura e informa quantos sábados e domingos caem em cada dia civil da data mais cedo até a mais tarde, ambas inclusas. A ordem não altera os totais de fim de semana: o mesmo par produz os mesmos contagens de sábado e domingo se você listar o dia mais cedo primeiro ou segundo, enquanto a direção com sinal permanece disponível para pipelines cronológicos. Bases impossíveis como 29 de fevereiro em um ano comum falham com um erro de validação claro em vez de se ajustarem em silêncio.
Como sábados e domingos são contados em um intervalo de datas
Comece com duas datas civis escritas como ano, mês e dia na forma ISO internacional com hífens e larguras fixas para que todo cliente concorde com os mesmos seis inteiros.
Para cada string confirme que o ano está em um intervalo gregoriano prático do ano um ao 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 29 de fevereiro em anos como 2024 e 2000, e ilegal em 2023 e 1900.
Quando ambos os triples são válidos, converta cada dia civil em um número de dia juliano astronômico com a fórmula inteira de Fliegel e Van Flandern usada na família de datas. Pegue o intervalo inclusivo do menor número de dia até o maior para que a ordem nunca mude a contagem. O dia da semana segue a identidade modular dia-da-semana igual a dia juliano mais um módulo sete, com domingo como zero e sábado como seis, coincidindo com o dia civil do epoch Unix.
Semanas inteiras dentro do intervalo contribuem exatamente com um sábado e um domingo; qualquer resto de no máximo seis dias é percorrido a partir do dia da semana inicial, de modo que intervalos longos de vários anos permanecem em tempo constante.
Onde contadores de fim de semana aparecem no trabalho real
Gestores de operações estimam a cobertura de fim de semana em lojas, hospitais e call centers a partir de uma janela definida por duas datas ISO. Equipes de RH e folha de pagamento calculam horas premium de fim de semana ou direitos de descanso sem importar uma biblioteca completa de calendário nem confiar no relógio do navegador. Planejadores de eventos e mesas de viagem contam noites de fim de semana em uma estadia ou festival para faixas de preço e equipe.
Engenheiros de dados materializam colunas derivadas de exposição a fins de semana, dias de descanso de campanha e carga de plantão a partir de duas strings ISO na configuração. Se mais tarde você precisar de contagens de dias úteis que pulem fins de semana e feriados, semanas inteiras mais dias sobrando, adição de dias a uma única base ou ordinais do dia do ano, trate isso como intenções de busca e páginas separadas em vez de sobrecarregar esta página de dias de fim de semana entre datas.
Casos de uso
Equipe e cobertura de fim de semana
Conte sábados e domingos em uma janela de escala para dimensionar turnos, plantões e pagamento premium sem uma biblioteca completa de calendário.
Férias e direitos de descanso
Obtenha quantos dias de fim de semana caem entre duas datas ISO de férias para políticas, viagens e configuração de RH que ignore fusos do host.
Eventos, estadias e campanhas
Meça noites ou exposição de fim de semana em festivais, hotéis e campanhas de marketing definidas por duas strings ISO de calendário.
Perguntas frequentes
As duas datas dos extremos são incluídas?
Sim. Cada dia civil da data mais cedo até a mais tarde inclusiva é considerado.
E se uma das datas for inválida?
Exemplos: 2023-02-29, 2024-04-31, formatos errados ou campos ausentes. Entrada inválida não é cobrada.
Isso pula feriados ou usa fins de sexta a sábado?
Não. Conta apenas sábado e domingo no calendário gregoriano proléptico. Dias úteis com feriados e fins de semana personalizados são ferramentas e páginas separadas.
Quanto custa?
A ferramenta do navegador é gratuita e roda localmente.
Quantos dias de fim de semana tem janeiro de 2024?
São 8: 4 sábados e 4 domingos distribuídos pelos 31 dias do mês. Digite 2024-01-01 como primeira data e 2024-01-31 como segunda para ver a contagem separada entre sábados e domingos.
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/weekend-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2024-01-01","end":"2024-01-31"}'const res = await fetch("https://api.kit.forhosting.com/date/weekend-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2024-01-01",
"end": "2024-01-31"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/weekend-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2024-01-01",
"end": "2024-01-31"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/weekend-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2024-01-01","end":"2024-01-31"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2024-01-01","end":"2024-01-31"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/weekend-count", 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
{
"start": "2024-01-01",
"end": "2024-01-31"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.weekend_count",
"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 dois campos de string obrigatórios: start e end, cada um um dia de calendário ISO estrito como 2024-01-01 e 2024-01-31. Checagens clássicas incluem o mês completo de janeiro de 2024 com quatro sábados e quatro domingos (oito dias de fim de semana), um intervalo de um único sábado no mesmo dia com saturdays igual a um, e uma semana útil de segunda a sexta com zero dias de fim de semana. Campos ausentes, valores que não sejam string, strings que não batem com o padrão de quatro-dois-dois dígitos e datas que batem com o padrão mas não são dias reais do calendário falham com invalid_input e não são cobrados. Em caso de sucesso a resposta ecoa as strings ISO normalizadas de início e fim, o número de dia juliano de cada lado, os nomes em inglês do dia da semana dos dois extremos, signed_days como fim menos início, total_days_inclusive como o número de dias civis no intervalo fechado, saturdays e sundays como contagens inteiras separadas, weekend_days como a soma, um indicador direction de forward, backward ou same, e uma string formula curta que documenta o caminho JDN. O preço das chamadas API bem-sucedidas é a base publicada de US$ 0,002 por item; falhas de validação não consomem saldo pré-pago.
Onde contadores de fim 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.
Perguntas técnicas
A ordem de entrada muda a contagem de fim de semana?
Não. O intervalo inclusivo absoluto é usado para saturdays, sundays e weekend_days. signed_days e direction ainda refletem fim menos início em pipelines cronológicos.