Dia da semana do primeiro dia do mês por data ISO
Digite qualquer data e saiba em que dia da semana o mês dela começou: 13 de agosto de 2026 dá 1º de agosto de 2026, um sábado. Você também recebe o número ISO do dia e um índice a partir do domingo para montar calendários. 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
- 2026-08-13
- Data de entrada
- 2026-08-13
- Primeira data
- 2026-08-01
- Ano
- 2.026
- Mês
- 8
Esta calculadora identifica o dia da semana em que começou o mês de uma data ISO explícita. O dia informado pode estar em qualquer ponto do mês; o resultado sempre se refere ao dia primeiro. A resposta traz a primeira data canônica, o nome do dia, o número ISO e um índice iniciado no domingo. A validação gregoriana rigorosa rejeita datas impossíveis.
Informe uma data ISO completa e inequívoca
Preencha o campo date com uma data de calendário ISO completa no formato YYYY-MM-DD. Quatro algarismos representam o ano, dois o mês e dois o dia. Assim, 2026-08-13 seleciona agosto de 2026, e o componente final comprova que você forneceu uma data real e explícita, não apenas um mês incompleto.
A ferramenta valida o valor inteiro antes de calcular o dia da semana. Os meses devem estar entre 01 e 12, o dia precisa existir no mês indicado e fevereiro segue a regra gregoriana dos anos bissextos. Em geral, anos divisíveis por quatro são bissextos, exceto os anos de século que não são divisíveis por quatrocentos.
O intervalo aceito vai de 0001 a 9999. Datas com hora, sufixos de fuso, datas semanais ou ordinais, separadores flexíveis e formatos regionais são recusados. Essa rigidez impede que valores como 2023-02-29 ou 2026-13-01 sejam convertidos silenciosamente em outra data.
Entenda o cálculo determinístico do dia da semana
Após a validação, o mecanismo preserva o ano e o mês informados e substitui intencionalmente o dia por um para fazer o cálculo. Ele aplica uma fórmula gregoriana inteira com uma pequena tabela de deslocamentos mensais, ajustes para anos divisíveis por quatro, correções de séculos e restauração para anos divisíveis por quatrocentos. Janeiro e fevereiro pertencem ao ano aritmético anterior nessa fórmula.
O resto módulo sete produz um índice iniciado no domingo: zero representa domingo, um representa segunda-feira e seis representa sábado. A resposta também converte esse índice para a numeração ISO, na qual segunda-feira é um e domingo é sete, além de selecionar o nome em uma tabela constante. Nenhuma data do sistema é criada.
Isso evita que APIs de data interpretem uma string sem horário conforme regras locais e desloquem a meia-noite para outro dia.
Aplique o resultado em calendários, relatórios e testes
Interfaces de calendário podem calcular quantas células vazias antecedem o dia primeiro. Relatórios podem identificar o dia de abertura de cada período contábil, e testes podem criar casos estáveis sem simular relógios nem alterar o fuso. A ferramenta não calcula o primeiro dia útil, não ignora feriados, não localiza nomes e não procura a primeira ocorrência de um dia solicitado.
Ela responde somente em que dia da semana caiu o primeiro dia do mês da data ISO.
Casos de uso
Montar uma grade de calendário
Use o índice semanal para posicionar o dia primeiro na coluna correta e calcular as células vazias iniciais.
Identificar períodos contábeis
Acrescente o dia de abertura aos relatórios mensais quando uma data de transação determina o período descrito.
Criar casos de teste estáveis
Gere resultados determinísticos de início de mês sem consultar o relógio, criar datas locais ou configurar fusos horários.
Perguntas frequentes
O dia informado precisa ser o primeiro do mês?
Não. Qualquer data real do mês escolhido é aceita. O mecanismo valida a data e calcula o dia da semana do dia primeiro.
O fuso horário pode mudar a resposta?
Não. O cálculo usa aritmética gregoriana inteira e nunca cria um Date nem consulta as configurações locais de fuso.
Como o resultado ajuda a montar um calendário mensal?
Use o índice que começa no domingo para contar as casas vazias antes do dia 1. Agosto de 2026 começa num sábado, índice 6, então uma grade que começa no domingo precisa de seis casas vazias.
Qual a diferença entre os dois números do dia?
O número ISO vai da segunda-feira como 1 ao domingo como 7. O índice a partir do domingo vai do domingo como 0 ao sábado como 6. Para um sábado, os dois coincidem em 6.
A ferramenta dá o primeiro dia útil do mês?
Não. Ela só informa o dia da semana do dia 1. Não pula fins de semana nem feriados e não procura a primeira ocorrência de um dia da semana escolhido.
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/weekday-of-first-of-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/weekday-of-first-of-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/weekday-of-first-of-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/weekday-of-first-of-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/weekday-of-first-of-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.weekday_of_first_of_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. |
Notas técnicas
Informe uma data ISO completa e inequívoca
Depois da validação, o dia informado não muda a resposta: todas as datas válidas do mesmo mês geram os mesmos campos first_date e weekday.
Entenda o cálculo determinístico do dia da semana
A mesma entrada depende apenas do calendário gregoriano proléptico e gera resultado idêntico em UTC, em navegadores de outros fusos e em futuras chamadas de API.
Aplique o resultado em calendários, relatórios e testes
A resposta atende tanto à exibição humana quanto à integração em software. first_date contém o valor canônico YYYY-MM-01 do mês escolhido. weekday informa o nome do dia, iso_weekday fornece o número ISO de um a sete entre segunda-feira e domingo, e weekday_sunday_zero atende sistemas cujas semanas começam no domingo com índice zero. input_date, year e month também acompanham a saída para que um resultado armazenado continue autoexplicativo. O uso no navegador é grátis; solicitações automatizadas custam US$ 0,002. Uma entrada inválida retorna invalid_input, separando erro de calendário de falha interna.
Perguntas técnicas
O que significa iso_weekday?
É a numeração ISO: segunda-feira é 1, terça-feira é 2 e domingo é 7. weekday_sunday_zero também é retornado para listas iniciadas no domingo.
O que acontece se eu enviar uma data impossível?
A solicitação retorna invalid_input. Isso inclui meses inválidos, dias inexistentes, o ano 0000 e 29 de fevereiro fora de ano bissexto.
Quanto custa uma solicitação de API?
Uma solicitação bem-sucedida custa US$ 0,002. O mesmo cálculo determinístico também pode ser executado grátis no navegador.