Primeiro e último dia do mês
Escolha um ano e um mês e receba a primeira e a última data: fevereiro de 2024 vai de 1º a 29 de fevereiro de 2024, enquanto fevereiro de 2023 termina no dia 28. Pronto para faturas e períodos de relatório. 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
- Ano
- 2.024
- Mês
- 2
- Nome do mês
- February
- Primeiro dia
- 1
- Último dia
- 29
- Dias no mês
- 29
Esta calculadora de primeiro e último dia do mês recebe um ano do calendário gregoriano e um número de mês de um a doze, e retorna as datas de abertura e fechamento desse mês no formato estrito AAAA-MM-DD. Verificações clássicas incluem fevereiro de 2024 resultando na data inicial 2024-02-01 e na data final 2024-02-29 com vinte e nove dias, fevereiro de 2023 resultando em 2023-02-28 como último dia, e abril de 2024 resultando em 2024-04-01 até 2024-04-30. O mecanismo usa apenas comprimentos de mês determinísticos baseados em tabela, com a regra gregoriana de ano bissexto, então nunca consulta o relógio do host, nunca amostra aleatoriedade e nunca chama a rede.
Onde os limites de mês se encaixam em cobrança, relatórios e software
Equipes de operações e finanças precisam de datas de início e fim de mês quando a fatura de uma assinatura cobre um mês completo de calendário, quando uma política de retenção é declarada como o mês que contém um evento, ou quando um filtro de painel assume por padrão o mês de relatório atual sem fixar trinta ou trinta e um.
Analistas que constroem coortes usam os mesmos limites para rotular janelas de observação que abrem no primeiro e fecham no verdadeiro último dia, evitando truncamentos silenciosos quando fevereiro ou meses curtos aparecem em preenchimentos retroativos de vários anos. Educadores e redatores de normas usam a ferramenta para demonstrar fins de mês com dia bissexto, como fevereiro de 2024 versus fevereiro de 2023, sem depender de aplicativos de calculadora opacos que incluem silenciosamente horários do dia.
Combine-a com dias entre datas, subtração de dias ou auxiliares de semana ISO quando precisar de passos de calendário relacionados, e com outras ferramentas determinísticas gratuitas ao montar um pequeno laboratório de utilitários de data.
Casos de uso
Intervalos de cobrança e faturamento
Obtenha as datas inclusivas de início e fim de um ano-mês para que faturas e assinaturas cubram o mês completo sem fixar a contagem de dias.
Fevereiro bissexto e meses curtos
Verifique que fevereiro termina no dia 28 ou 29 pelas regras gregorianas de ano bissexto, e que abril, junho, setembro e novembro fecham corretamente no dia 30.
Perguntas frequentes
O que acontece se month estiver fora de 1 a 12?
Month deve ser um número inteiro de 1 (janeiro) a 12 (dezembro).
Como os anos bissextos são tratados em fevereiro?
Um ano é bissexto se for divisível por 4, exceto anos de século que não sejam também divisíveis por 400. Fevereiro então tem 29 dias (por exemplo, 2024 e 2000), caso contrário tem 28.
Quais meses terminam no dia 30?
Abril, junho, setembro e novembro fecham no dia 30; abril de 2024, por exemplo, vai de 2024-04-01 a 2024-04-30. Fevereiro termina no dia 28, ou 29 nos anos bissextos, e os demais meses no dia 31.
As duas datas entram no intervalo do mês?
Sim. A primeira data é sempre o dia 1 e a última é o verdadeiro dia final, então um filtro ou uma fatura que vá de uma à outra cobre o mês inteiro, sem perder nenhum dia no fim.
Dá para usar em períodos de cobrança?
Sim. Informe o ano e o mês do período e você recebe as datas de abertura e de fechamento, para que uma fatura mensal ou uma assinatura cubra o mês todo sem digitar 30 ou 31 à mão.
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/month-start-end \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"year":2024,"month":2}'const res = await fetch("https://api.kit.forhosting.com/date/month-start-end", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"year": 2024,
"month": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/month-start-end",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"year": 2024,
"month": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/month-start-end", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"year":2024,"month":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"year":2024,"month":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/month-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
{
"year": 2024,
"month": 2
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.month_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.
Limites
year_min | 1 |
year_max | 9999 |
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 gratuitamente no navegador para janelas de cobrança, intervalos de relatórios e lições de casa, ou chame a API por US$ 0,002 a cada solicitação bem-sucedida quando precisar de limites de mês reproduzíveis em CI, pipelines de agendamento, ou funcionalidades de produto que não podem inventar datas de fim de mês à mão.
O que significam o início e o fim do mês e o que a resposta contém
Saber o primeiro e o último dia de calendário de um mês responde a uma pergunta diferente de contar dias entre duas datas arbitrárias, encontrar o próximo dia da semana, ou converter números de dia juliano: fixa os limites civis de um ano-mês nomeado, para que intervalos de relatório, faturas e janelas de retenção abram no dia um e fechem no verdadeiro último dia, sem erros de contagem em meses de trinta dias ou fevereiros bissextos. Se você precisa de distância em dias inteiros entre duas datas livres, navegação de dia da semana, ou conversão de semana ISO, use essas ferramentas dedicadas; esta página responde apenas o início e o fim de calendário de um único ano-mês validado. Você informa um ano inteiro e um mês inteiro de um para janeiro até doze para dezembro; a calculadora valida esses campos, consulta quantos dias esse mês tem naquele ano segundo o calendário gregoriano prolético, e retorna first_date como AAAA-MM-01, last_date como AAAA-MM com o verdadeiro último dia preenchido com zero à esquerda, first_day sempre igual a um, last_day igual a days_in_month, o month_name em inglês para exibição, is_leap_year para quem chama e é sensível a fevereiro, e um breve lembrete de fórmula. Os casos rejeitados incluem year ou month ausente, valores não inteiros, anos fora do intervalo de um a 9999, e qualquer mês fora do intervalo de um a doze, como zero, treze ou índices negativos.
Como year e month são interpretados e como fevereiros bissextos permanecem corretos
Cada valor pode chegar como um número, uma string inteira pura com um sinal opcional, ou um bigint que caiba no intervalo seguro; decimais embutidos, prefixos hexadecimais e tokens não numéricos são rejeitados com uma mensagem clara, para que uma célula com erro não vire um último dia errado. Os comprimentos de mês vêm de uma tabela fixa de trinta e um, trinta ou vinte e oito dias, exceto fevereiro, que vira vinte e nove quando o ano é bissexto pela regra gregoriana: divisível por quatro, exceto anos de século não divisíveis por quatrocentos. Essa regra dá corretamente 2024-02-29 e 2000-02-29, ao mesmo tempo em que rejeita qualquer tentativa de inventar trinta e dois dias em qualquer mês. O primeiro campo preferido é year, mas os aliases y e Y são aceitos, para que planilhas, strings de consulta e formulários tipados possam reutilizar o mesmo contrato sem renomear colunas. O segundo campo preferido é month, com os aliases m, M e mon pelo mesmo motivo. Depois da análise, year deve estar entre 1 e 9999, inclusive, e month deve estar entre 1 e 12, inclusive — valores como 0, 13 ou 2024 como mês falham com invalid_input nomeando o campo month. O primeiro dia é sempre um; o último dia é igual a days_in_month; os dois limites são formatados com anos de quatro dígitos e meses e dias de dois dígitos. Combine a execução gratuita no navegador desta página com a API paga quando precisar dos mesmos limites de mês dentro de um pipeline automatizado.
Onde os limites de mês se encaixam em cobrança, relatórios e software
Nesta página o trabalho roda inteiramente no seu navegador; pela API, cada consulta bem-sucedida custa US$ 0,002, a validação com falha não é cobrada, e nada é armazenado depois que a resposta é devolvida. Essa divisão — exploração interativa gratuita e uma API paga e idêntica — segue o padrão do resto do catálogo tier A do KIT e permite passar de uma verificação pontual para um pipeline sem mudar o resultado matemático.
Casos de integração
Fixtures determinísticas para testes
Gere strings reproduzíveis de first_date e last_date para testes unitários, verificações de propriedades e asserções de CI sem depender de Date ou do relógio do host.
Perguntas técnicas
Quanto custa a calculadora de primeiro e último dia do mês?
É gratuita no navegador, nesta página. Pela API, uma solicitação bem-sucedida custa US$ 0,002; entradas inválidas não são cobradas.
Como as datas de início e fim são definidas?
Para um ano e mês validados, first_date é sempre AAAA-MM-01 e last_date é AAAA-MM-{days_in_month}, em que days_in_month vem da tabela gregoriana de comprimento de mês (29 de fevereiro em anos bissextos).
Esta ferramenta usa o objeto Date do host?
Não. Os comprimentos de mês e as regras de ano bissexto são aritmética inteira pura com uma tabela fixa, então os resultados são reproduzíveis entre runtimes sem efeitos de fuso horário ou relógio.