Quantidade de Meses

Delphi

12/03/2004

Alguem saber de uma função que me de a quantidade de meses entre duas datas.

Obrigado desde já.


Manjuneiro

Manjuneiro

Curtidas 0

Respostas

Skaarj

Skaarj

12/03/2004

Uma funçao que faça isso eu nao saberia, mas faria da seguinte forma:
var
  mes1,mes2,dia,ano:word;
  diferenca: real;
begin
  decodedate(data1,ano,mes1,dia); //menor data
  decodedate(data2,ano,mes2,dia); //maior data
  diferenca := mes2-mes1;
  showmessage(´A diferença dos meses é de ´+floattostr(diferenca)+´ meses´);
end;



GOSTEI 0
Marco Salles

Marco Salles

12/03/2004

Use a Função Apresentada Pelo Nosso Amigo Emerson Em Outro Tópico:

function MesEntreDatas(DataInicial, DataFinal: TDateTime): integer; 
var 
Dias, Meses, Anos: integer; 
DiaIni, DiaFim, MesIni, MesFim, AnoIni, AnoFim: word; 
begin 
if DataInicial > DataFinal then 
  begin 
    DecodeDate(DataFinal, AnoIni, MesIni, DiaIni); 
    DecodeDate(DataInicial, AnoFim, MesFim, DiaFim); 
  end 
else 
  begin 
    DecodeDate(DataInicial, AnoIni, MesIni, DiaIni); 
    DecodeDate(DataFinal, AnoFim, MesFim, DiaFim); 
  end; 
Dias := DiaFim - DiaIni; 
Meses := MesFim - MesIni; 
Anos := AnoFim - AnoIni; 
  if Dias < 0 then Dec(Meses); 
Result := Meses + (Anos * 12); 
end;



GOSTEI 0
Keitarosan

Keitarosan

12/03/2004

Bom, o Delphi jah traz essa duas funçoes aki:

[quote:0b4a95e405=´Busca no ClubeDelphi´]function MonthsBetween(const ANow, AThen: TDateTime): Integer;
Retorna o valor aproximado de meses entre as duas datas...

function MonthSpan(const ANow, AThen: TDateTime): Double;
Retorna o número de meses exato de meses entre as duas datas (a diferença é que este retorna um número decimal, porém exato);[/quote:0b4a95e405]

^_^


GOSTEI 0
POSTAR