Verificador de ano bissexto
Digite um ano e saiba se fevereiro tem 29 dias: 2024 é bissexto porque é divisível por 4 e não por 100, enquanto 1900 não é e 2000 é. O motivo mostra qual regra decidiu. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Um verificador de ano bissexto responde a uma das perguntas de calendário mais comuns: dado um ano, fevereiro tem vinte e nove dias? Informe um ano gregoriano inteiro e esta ferramenta devolve um indicador claro sim-ou-não de bissexto junto com o motivo exato de divisibilidade —se o ano é divisível por quatro, por cem e por quatrocentos— para você ver qual ramo da regra gregoriana se aplicou. Anos de século como mil e novecentos falham no teste de bissexto embora sejam divisíveis por quatro, enquanto anos como dois mil passam porque são divisíveis por quatrocentos. O caminho é aritmética inteira pura, sem chamadas de rede, sem sementes aleatórias e sem dependência do relógio do host ou do construtor Date.
O que torna um ano gregoriano bissexto
O calendário gregoriano proléptico insere um dia extra em fevereiro para a duração média do ano ficar próxima do ano trópico. A regra se ensina como três condições aninhadas. Primeiro, se o ano não é divisível por quatro, é um ano comum e fevereiro tem vinte e oito dias.
Segundo, se o ano é divisível por quatro mas não por cem, é bissexto e fevereiro tem vinte e nove dias —isso cobre bissextos ordinários como dois mil e vinte e quatro e dois mil e vinte e oito. Terceiro, anos de século divisíveis por cem são comuns a menos que também sejam divisíveis por quatrocentos: mil e novecentos não é bissexto, enquanto dois mil é.
Essa exceção de século é o que as pessoas mais esquecem, e por isso um verificador de bissexto que só testa módulo quatro está errado em sistemas de produção. Esta capacidade aplica a árvore completa de regras e devolve o booleano mais um motivo legível que nomeia qual ramo de divisibilidade venceu. Professores podem emparelhar exemplos nos quatro resultados: não divisível por quatro, divisível só por quatro, século comum e século bissexto.
Dicas práticas, limites e buscas relacionadas
Mantenha os anos dentro do intervalo publicado para a prática gregoriana de quatro dígitos e ferramentas de data irmãs permanecerem consistentes. Ao ensinar ou testar, guarde um conjunto pequeno conhecido: dois mil e vinte e quatro para bissexto ordinário, dois mil e vinte e três para ano comum, mil e novecentos para século comum e dois mil para século bissexto, mais uma falha deliberada não inteira como ano float.
Checagens de ida e volta são fáceis: recalcule year módulo quatro, cem e quatrocentos à mão e confirme que as três bandeiras e a frase de motivo batem com a ordem de ramos documentada. Esta landing atende quem busca verificador de ano bissexto, calculadora é bissexto ou gregoriano divisível por quatrocentos online; não é calculadora de dia da semana, não é validador ISO completo de data e não é contador de dias úteis ou idade.
Prefira esta capacidade quando você já tem um ano e só precisa do status bissexto e da explicação de divisibilidade; se tiver uma string completa YYYY-MM-DD e precisar do dia da semana, use a calculadora de dia da semana. Os limites de ano param em nove mil novecentos e noventa e nove para alinhar a superfície do produto com outras capacidades de data de parse puro deste catálogo.
Casos de uso
Conferência de lição sobre regras de bissexto
Alunos inserem anos do livro e comparam status bissexto e exceções de século escritos à mão com uma string de motivo determinística antes de entregar exercícios de calendário.
Planejamento de agenda e recorrência
Equipes de operações confirmam se um modelo anual inclui vinte e nove de fevereiro antes de gerar séries de recorrência ou calendários de SLA.
Perguntas frequentes
Como sei se um ano é bissexto?
No calendário gregoriano um ano é bissexto se for divisível por 400, ou divisível por 4 mas não por 100. Caso contrário é um ano comum.
1900 é um ano bissexto?
Não. 1900 é divisível por 100 mas não por 400, então é um ano comum embora seja divisível por 4.
2000 é um ano bissexto?
Sim. 2000 é divisível por 400, então a exceção de século não se aplica e fevereiro tem 29 dias.
E se eu enviar um ano não inteiro?
Anos devem ser inteiros; floats e strings não numéricas são rejeitados.
O verificador de ano bissexto é gratuito?
A ferramenta no navegador é gratuita e roda localmente.
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/is-leap-year \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"year":2024}'const res = await fetch("https://api.kit.forhosting.com/date/is-leap-year", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"year": 2024
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/is-leap-year",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"year": 2024
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/is-leap-year", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"year":2024}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"year":2024}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/is-leap-year", 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
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.is_leap_year",
"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
Valores não inteiros são rejeitados com um erro invalid_input claro em vez de um falso silencioso. Alunos conferindo lição de casa, desenvolvedores escrevendo casos de borda de fevereiro, planejadores validando modelos de agenda e qualquer pessoa confirmando um ano histórico obtêm o mesmo JSON determinístico no executor gratuito do navegador e na API pré-paga.
Como chamar a API e o que volta na resposta
O valor deve ser um número inteiro no intervalo inclusivo de um a nove mil novecentos e noventa e nove; frações decimais, strings em notação científica, strings vazias e tipos não numéricos são rejeitados. Prefira enviar um ano numérico em vez de string pré-formatada quando controlar o cliente; anos em string só são aceitos se casarem com um padrão inteiro estrito sem ponto decimal. Envie um corpo JSON com um campo inteiro obrigatório chamado year, que também pode ser fornecido sob os alias y ou value. Em sucesso a resposta ecoa year como inteiro, define is_leap_year, leap e leap_year para o mesmo booleano, define divisible_by_4, divisible_by_100 e divisible_by_400 para as três bandeiras modulares usadas pela árvore de regras, e inclui reason como frase completa em inglês de contrato explicando o ramo, message como resumo curto do comprimento de fevereiro e steps como array ordenado que reafirma cada checagem modular. Validação falha —campo ausente, número não inteiro, string não numérica ou ano fora do intervalo publicado— devolve invalid_input e nunca é cobrada. O preço é um US$ 0,002 fixo por requisição bem-sucedida com unidade item e preço marginal zero.
Dicas práticas, limites e buscas relacionadas
Tarefas falhas que devolvem invalid_input não consomem saldo pré-pago, o que mantém scripts exploratórios baratos quando aprendizes enviam anos ruins de propósito.
Casos de integração
Fixtures de borda de fevereiro para testes
Equipes de engenharia montam anos bissextos e não bissextos conhecidos para validadores e calendários de UI sem depender do relógio do host ou peculiaridades do construtor Date.