none
Diferença em mêses RRS feed

  • Pergunta

  • Gante, parece meio rídiculo, mais sim estou com problemas com datas..
    Preciso calcular a diferença em meses entre duas data... Até tudo bem, usamos o datediff.
    Mais a diferença entre 1 data do mes de janeiro e uma data do mes de dezembro do ano passado tah me retornando 17..
    Num sei oq fazer ?? alguem jah implemento uma solução que funcione ???

    Abraços
    segunda-feira, 18 de janeiro de 2010 12:53

Respostas

  • Testei aqui com Datediff e funcionou normal, vou te passar o código que fiz aqui.

      Dim data1 As Date = Date.Now
            Dim data2 As Date = Date.Now.AddYears(2)
            Dim intervalo As Long = DateDiff(DateInterval.Month, data1, data2, FirstDayOfWeek.System, FirstWeekOfYear.System)
            MessageBox.Show(intervalo.ToString())
    
    Adicionei dois anos na data de hj, e fazendo a diferença em meses o resultado me retorna 24 meses.


    • Sugerido como Resposta Alcenir Moretto segunda-feira, 18 de janeiro de 2010 15:53
    • Marcado como Resposta Miguel Müller segunda-feira, 18 de janeiro de 2010 22:46
    segunda-feira, 18 de janeiro de 2010 13:43

Todas as Respostas

  • Eu geralmente utilizo assim:

            Dim dataUm As DateTime = Now
            Dim dataDois As DateTime = Now.AddMonths(8)
    
            Dim resposta As TimeSpan = dataDois.Subtract(dataUm)
    
            MsgBox(resposta.Days)

    Ai eu tenho a resposta em dias, depois é só dividir por 30 e tenho os meses.
    segunda-feira, 18 de janeiro de 2010 13:06
  • Não há exceção para a fórmula naum neh ???
    segunda-feira, 18 de janeiro de 2010 13:10
  • Naum entendi o q vc quis dizer com exceção?
    segunda-feira, 18 de janeiro de 2010 13:31
  • O resultado vai ser sempre exato, independente do formato da data e tals ???
    segunda-feira, 18 de janeiro de 2010 13:34
  • A função subtrai uma data da outra, então se eu for subtrair a data de amanha menos a data de hj vai me retornar um dia.
    Independente de formato ela vai retornar o mesmo resultado, a unica coisa se vc fizer conversao de strings para data é cuidar para que a conversão esteja certa.
    segunda-feira, 18 de janeiro de 2010 13:39
  • Testei aqui com Datediff e funcionou normal, vou te passar o código que fiz aqui.

      Dim data1 As Date = Date.Now
            Dim data2 As Date = Date.Now.AddYears(2)
            Dim intervalo As Long = DateDiff(DateInterval.Month, data1, data2, FirstDayOfWeek.System, FirstWeekOfYear.System)
            MessageBox.Show(intervalo.ToString())
    
    Adicionei dois anos na data de hj, e fazendo a diferença em meses o resultado me retorna 24 meses.


    • Sugerido como Resposta Alcenir Moretto segunda-feira, 18 de janeiro de 2010 15:53
    • Marcado como Resposta Miguel Müller segunda-feira, 18 de janeiro de 2010 22:46
    segunda-feira, 18 de janeiro de 2010 13:43