Número de semanas em um mês
Descubra quantas semanas de calendário ocupa o mês que contém uma data ISO específica.
Executar grátis
Informe uma data no formato YYYY-MM-DD e escolha o dia que inicia a semana. O resultado considera a duração do mês, os anos bissextos e as posições vazias anteriores ao primeiro dia, indicando quantas linhas o mês exige em um calendário convencional. Toda a operação usa aritmética gregoriana fixa associada a UTC, sem depender do relógio, da localidade ou do horário de verão.
O que significa abranger semanas do calendário
Um mês não contém uma quantidade inteira exata de períodos de sete dias, e a expressão “semanas em um mês” admite interpretações diferentes. Esta calculadora conta linhas semanais: blocos que contêm pelo menos uma data do mês escolhido. Primeiro, ela localiza o dia da semana do primeiro dia, mede as posições vazias anteriores conforme o início selecionado, soma os dias reais e divide o intervalo em linhas de sete. Por isso, um mês de 31 dias pode ocupar cinco ou seis semanas. Fevereiro com 28 dias ocupa quatro quando começa junto com a semana escolhida, mas pode ocupar cinco em outro alinhamento. Essa definição corresponde a calendários mensais, escalas de pessoal, planos escolares e grades de relatórios. Ela difere propositalmente da simples divisão da quantidade de dias por sete, que descreve duração, mas não informa quantos blocos visuais ou operacionais o mês atravessa.
Escolha explicitamente o primeiro dia
O campo first_weekday controla os limites semanais. Use 0 para domingo, 1 para segunda-feira e prossiga até 6 para sábado. Segunda-feira é o padrão por ser comum em calendários empresariais orientados a ISO, mas nenhuma convenção é universal. Uma escala comercial iniciada no domingo e uma escala de escritório iniciada na segunda podem gerar contagens diferentes para o mesmo mês. A resposta repete o valor numérico, o nome inglês correspondente, o dia em que o mês começa e a quantidade de posições anteriores. Assim, você pode auditar o resultado e evitar divergências silenciosas entre sistemas. A data deve ser explícita, preenchida com zeros e escrita como YYYY-MM-DD. O dia seleciona e valida o mês; alterá-lo dentro do mesmo mês não muda a contagem. Datas impossíveis, inclusive dias bissextos indevidos, são rejeitadas em vez de serem ajustadas para outro mês.
Aritmética determinística para automação
O cálculo usa o calendário gregoriano proléptico dos anos 0001 a 9999. Anos divisíveis por quatro são bissextos, exceto séculos que não sejam também divisíveis por 400. Os dias da semana são derivados com números inteiros, sem consultar relógio, rede, aleatoriedade ou o objeto Date do JavaScript. A indicação UTC expressa uma data civil estável e neutra: a entrada não se desloca conforme o servidor ou o fuso do usuário. Assim, o mesmo JSON gera a mesma saída no navegador e na API, inclusive durante mudanças de horário. Use a resposta para dimensionar relatórios semanais, reservar linhas em escalas impressas, validar calendários importados ou definir blocos de alocação mensal. O retorno inclui duração e nome do mês, dia inicial e posições anteriores, permitindo guardar uma justificativa junto ao valor weeks_in_month. Requisições de API começam em US$ 0,002, e o navegador executa o mesmo núcleo determinístico.
Casos de uso
Dimensionar uma grade mensal
Descubra se a visualização precisa de quatro, cinco ou seis linhas antes de renderizar ou imprimir.
Criar blocos semanais de equipe
Monte o número correto de seções para uma escala mensal segundo a convenção da organização.
Validar layouts de relatórios
Confirme que relatórios mensais reservem toda semana que contenha ao menos uma data.
Perguntas frequentes
Todo mês tem quatro semanas?
Não. Quatro semanas equivalem a 28 dias; a maioria dos meses é maior e pode ocupar cinco ou seis linhas.
O que significa first_weekday?
Ele define cada limite semanal: 0 representa domingo, 1 segunda-feira, e os valores seguem até 6 para sábado.
Por que outro início semanal muda a resposta?
Ao mover os limites, as primeiras e últimas datas podem ocupar uma quantidade diferente de linhas semanais.
O dia informado afeta o resultado?
Ele identifica e valida o mês. Qualquer data válida no mesmo mês e ano produz a mesma contagem com igual configuração.
Como anos bissextos e fusos são tratados?
Regras gregorianas são aplicadas com inteiros. Não há conversão de fuso, portanto a data civil permanece estável em UTC.
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/weeks-in-month \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2026-08-13"}'const res = await fetch("https://api.kit.forhosting.com/date/weeks-in-month", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2026-08-13"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/weeks-in-month",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2026-08-13"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/weeks-in-month", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2026-08-13"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2026-08-13"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/weeks-in-month", 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": "2026-08-13"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.weeks_in_month",
"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. |