MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Entenda o ano bissexto e saiba como calculá-lo

    Compartilhe
    avatar
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11240
    Registrado : 30/12/2009

    Entenda o ano bissexto e saiba como calculá-lo

    Mensagem  criquio em 28/2/2012, 21:21

    Hoje, enquanto eu lia algumas matérias na Internet, me deparei com uma matéria relacionada ao ano bissexto e então pensei em elaborar uma função simples para poder calcular se o ano é bissexto ou não. Isso pode ser útil, por exemplo, para montar um calendário personalizado, para o qual precisamos saber quais anos são bissextos para podermos preencher corretamente o mês de fevereiro em uma combobox ou listbox ou mesmo em uma tabela. Aí você diz: "isso é fácil, todo mundo sabe que o ano bissexto ocorre de quatro em quatro anos". Bom, parcialmente correto. Temos que nos lembrar que são de quatro em quatro anos para anos múltiplos de quatro. Bom, muita gente sabe disso, mas não são apenas essas as regras que precisamos saber. Veja, abaixo, o que precisamos saber:

    1 - o ano bissexto ocorre de quatro em quatro anos;
    2 - o ano bissexto ocorre nos anos múltiplos de quatro;
    3 - a regra acima não se aplica para anos que terminam em "00" exceto quando for múltiplo de 400.

    Assim sendo, tudo que precisaremos é retornar o resto do ano dividido por 4 ou por 400 e tambem por 100. Nos dois primeiros casos, o ano será bissexto se o resto for 0. No terceiro caso, será bissexto se o resto for diferente de 0 para 100 e igual a 0 para 4. Veja a nossa funçãozinha abaixo:

    Dim Dias As Integer

    If Me.cboAno Mod 400 = 0 Or (Me.cboAno Mod 4 = 0 And Me.cboAno Mod 100 <> 0) Then
    Dias = 29
    Else
    Dias = 28
    End If


    Pronto, agora é só preencher a combo dos dias para quando o mês for fevereiro:

    Dim TDias As Integer

    Me.cboDias.RowSource = ""
    Me.cboDias.RowSourceType = "value list"

    For TDias = 1 To Dias
    Me.cboMeses.AddItem TDias
    Next


    Obviamente temos os outros meses do ano. A ideia, nesse caso, seria ter uma variável para verificar o mês e colocar o número de dias correspondente e, para o fevereiro, adicionar a função acima. Obviamente, tambem, há outras formas de se fazer a mesma coisa, mas deixo essa dica para ajudar, tambem, a entender a formação do ano bissexto.

    Mas, por que temos o ano bissexto de 4 em 4 anos menos nos anos múltiplos de 100? Bom, é porque o ano solar tem um pouco mais de 365 dias mas não chega a 6 horas de diferença. Se fosse 6 horas redondo, bastaria acrescentar um dia a cada 4 anos, mas como falta alguns minutos para seis horas, essa diferença é tirada nos anos múltiplos de 100. O ano solar é igual a 365,2425 dias. Se fosse 365,25, aí sim, seriam exatamente seis horas a mais. Essa é uma curiosidade que muita gente não sabia, talvez pelo fato de que nossa expectativa de vida, no geral, seja inferior a um século.

    Espero que meu pequeno artigo seja útil.


    .................................................................................
    Meu novo site: [Você precisa estar registrado e conectado para ver este link.]

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2472
    Registrado : 21/04/2011

    Re: Entenda o ano bissexto e saiba como calculá-lo

    Mensagem  Marcelo David em 28/2/2012, 22:21

    Excelente!


    .................................................................................
    Marcelo David
    [Você precisa estar registrado e conectado para ver este link.] (em construção)

    Convidad
    Convidado

    Re: Entenda o ano bissexto e saiba como calculá-lo

    Mensagem  Convidad em 28/2/2012, 22:33


    Muito bom, mestre! king
    avatar
    Dilson
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1707
    Registrado : 11/11/2009

    Re: Entenda o ano bissexto e saiba como calculá-lo

    Mensagem  Dilson em 29/2/2012, 18:27

    Ótimo trabalho. Contemplado em um 29 de fevereiro, é melhor ainda.

    Parabéns brother!


    ManuelQuim
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 35
    Registrado : 29/10/2015

    Muito Útil!

    Mensagem  ManuelQuim em 13/9/2018, 15:02

    Dica de Grande utilidade... OBGD

      Data/hora atual: 18/11/2018, 21:13