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:

    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...