Cálculo de ano bissexto em VBA

Calcular ano bissextoSaiba como criar sistemas rápidos e incríveis no Access 2007. Conheça o curso online de Access 2007.

Algo que em alguns momentos pode ser muito útil na programação é poder contar com uma função que possa calcular o ano bissexto.

No VBA não conheço nenhuma função nativa para calcular ano bissexto, então resolvi elaborar uma solução bem simples.

O código que será disponibilizado a seguir, poderá ser incluído em uma função. Assim ele poderá ser executado mais facilmente.

Como é calculado o ano bissexto?

Antes do código gostaria de explicar brevemente como é feita a lógica para descobrir se o ano é bissexto ou não.

O cálculo de ano bissexto é um pouco complicado, porém ele será divido em passos. Desta maneira, acredito que você poderá entender melhor como calculá-lo.

  1. Tente dividir o ano por 4, caso o resto da divisão seja diferente de 0, ou seja, ele não seja divisível por 4, então ele não é bissexto.
  2. Caso seja divisível por 4, é verifique se ele termina com “00” (zero duplo), em caso negativo, então ele é bissexto.
  3. Se terminar com “00” (zero duplo), então divida este ano por “400” (quatrocentos). Caso o resto da divisão por “400” seja 0, então ele é bissexto pois é divisível. Caso não seja divisível, ou seja, o resto seja diferente de 0, então o ano não é bissexto.

Código VBA para calcular ano bissexto

Finalmente vamos então à função para calcular ano bissexto em vba, ela usa o resto da divisão para verificar se é divisível por 400 ou divisível por 4.

Dim ano As string

ano = InputBox(“Digite ano”, “Empresa”, “2012”)

If (Right(ano, 2) = “00”) Then

If ((ano Mod 400) = 0) Then

msgbox “bissexto”

Else

msgbox “normal”

End If

Else

If ((ano Mod 4) = 0) Then

msgbox “bissexto”

Else

msgbox “normal”

End If

End If

Então, o que achou desta função simples em VBA para calcular ano bissexto? Deixe seu comentário e compartilhe este artigo nas redes sociais!

Autor: Matheus Pellizzaro

Matheus é formado em sistemas de Informação pela UDESC, desenvolve sistemas e páginas de internet para empresas e pessoas físicas nas "horas vagas". Maiores detalhes em www.tecnozen.com.br

  • Claudio

    Tem um jeito mais fácil:

    Dim ano As String
    ano = InputBox(“Digite o ano”, “”, “2013”)
    If IsDate(“29/02/” & ano) Then
    MsgBox “bissexto”
    Else
    MsgBox “normal”
    End If

    • Olá Claudio,

      Obrigado pela dica e pela visita!

      Volte sempre!

      Abraço!