Função para ano bissexto em JavaScript, PHP e Java

O JavaScript, assim como outras linguagens como PHP e Java, oferecem uma série de funções que facilitam muito a vida do programador. No entanto, algumas vezes faltam funções mais específicas, esse é o caso da validação do ano bissexto. Isso significa que precisamos criar uma nova função para verificar se um determinado ano é bissexto.

Como saber se um ano é bissexto?

Para validar se um ano é bissexto a lógica é bastante simples, basta aplicar as 3 seguintes regras ao ano a ser validado:

  • Ser divisível por 4.
  • Não ser divisível por 100.
  • Todo ano divisível por 400 é sempre bissexto.

Agora, basta aplicar essas regras acima na construção da função.

Escrevendo a função para ano bissexto:

Para escrevermos nossa função vamos utilizar o operador de módulo (%). Dessa forma, podemos pegar apenas o resto de uma divisão entre dois números, conforme os exemplos abaixo:

12 % 5 // retorna 2
10 % 2 // retorna 0

Com base nas regras para validar um ano bissexto, além de termos conhecimento do uso do operador de módulo, podemos escrever a seguinte função:

function verificaAnoBisexto (y) {
  // O ano divisível por 400 é sempre bissexto
  if (y % 400 == 0)
    return true
  
  // O ano deve ser divisível por 4 mas não pode ser divisível por 100
  if (y % 4 == 0 && y % 100 != 0)
    return true

  // Caso o ano não caia nas regras acima retorna falso
  return false
}

Agora, podemos ainda simplificar a função de ano bissexto reduzindo dessa forma as condições:

function verificaAnoBisexto (y) {
  return (y % 400 == 0) || (y % 4 == 0) && (y % 100 != 0)
}

Assim, a função executará exatamente a mesma lógica porém escrita de forma mais sucinta.

Explicação da função de ano bissexto:

Como vimos anteriormente, os bissextos são os anos divisíveis por 4, exceto os divisíveis por 100 ou qualquer ano que que seja divisível por 400, logo:

  1. Qualquer ano divisível por 400 é bissexto: (y % 400 == 0)
  2. Ou o ano deve ser divisível por 4: || (y % 4 == 0)
  3. Porém, não pode ser divisível por 100: && (y % 100 != 0)

Você conseguiu acompanhar o raciocínio? Caso tenha alguma dúvida, deixe seu comentário para que eu possa esclarecer para você.


Tags:

  • Ano bissexto
  • JavaScript
  • PHP
  • Java
  • Validação
  • Datas

Compartilhar:

10 Comentários

  • Foto de Arthur Ronconi
    Arthur Ronconi
    Hélio, todos os códigos e ações do plugin podem ser encontrados no próprio script do plugin. Dá uma olhada lá! =D
  • Foto de Marcelo Alexandre
    Marcelo Alexandre
    É a melhor função para validação de data em Javascript que já analisei! Parabéns!
  • Foto de Aristides
    Aristides
    SHOW
  • Foto de Anônimo
    Anônimo
    Obrigado!!!
  • Foto de Anônimo
    Anônimo
    Obrigado!
  • Foto de bretas
    bretas
    Muito bom valeu muito!!!
  • Foto de Cristiano
    Cristiano
    Meu nobre, Boa tarde! Artigo excelente e função melhor ainda. Me ajudou bastante em um dos meus projetos. Inclusive, adicionei a validação da hora, caso seja digitada. Um forte abraço!
  • Foto de Matheus Costa
    Matheus Costa
    muito massa ! sempre me perguntava o porque JS tinha Java no nome, visto que não vivi a época do Netscape Navigator
  • Foto de José Lopes
    José Lopes
    Ainda tenho duvidas entre ele e o Joomla, o WordPress parece que tem umas limitações que o Joomla não tem
  • Foto de Arthur Ronconi
    Arthur Ronconi
    Quais limitações?

O que achou do artigo?

Escreva um comentário, deixe-me saber o que achou do artigo. Se tens uma dúvida basta perguntar:

Resposta ao comentário:
Loading...