Fórum Sobre Datas... #278242
20/04/2005
0
Bruno Belchior
Curtir tópico
+ 0Posts
20/04/2005
Edilcimar
Gostei + 0
20/04/2005
Rjun
Gostei + 0
20/04/2005
Bruno Belchior
Gostei + 0
20/04/2005
Rjun
Gostei + 0
21/04/2005
José Henrique
function Meses(DataMaior, DataMenor : TDateTime) : integer; //Devolve o número de meses entre DataMaior e DataMenor independente dos dias //Exemplo: Meses(28/02/05, 01/03/05) = 2 var DataAtual : TDateTime; intMes : integer; var Ano, Mes, Dia : word; begin DecodeDate(DataMenor, Ano, Mes, Dia); DataAtual := EncodeDate(Ano, Mes, 1); DecodeDate(DataMaior, Ano, Mes, Dia); DataMaior := EncodeDate(Ano, Mes, 1); intMes := 1; DataAtual := DataMenor; while (DataAtual < DataMaior) do begin Inc(intMes); DataAtual := IncMonth(DataAtual, 1); end; Result := intMes; end;
Gostei + 0
21/04/2005
Marco Salles
[b:e3d60b964b][color=red:e3d60b964b]Tem ate um tópico aqui no site Chamado TemBugNaFunção MonthsBetween[/color:e3d60b964b][/b:e3d60b964b]
http://forum.clubedelphi.net/viewtopic.php?t=36022&highlight=bug
P:s Infelismente a integra desse tópico , não pode ser vista , porque as mensagems postadas pelo nosso amigo Emersom.En Sumiram...
Antes as Dele do que as Minhas[/b:e3d60b964b] :lol: :lol: :lol: Brincadeirinha :P :P :P
:arrow: Amigo [b:e3d60b964b]Jose Henrique [/b:e3d60b964b], eu experimentei sua função e entre as datas
28/02/2005 e 01/03/2005 a resposta foi ZERO :cry: :cry: :cry:
:idea: Verifique se não esta faltando algo
:arrow: Bem , mas eu não entrei aqui , com este propósito. O meu propósito é outro.. Gostaria de passar para a Frente Uma Rotina Criada Pelo Nosso Amigo Emerson.En que trata Há meu Ver,[b:e3d60b964b] Muito Bem [/b:e3d60b964b]Dessas Diferenças De Datas
:arrow: Infelismente alguns Tópicos Do Emerson.En Sumiram Aqui No Forum Há Um Tempo Atrás, Felismente eu Copiei Esta Rotina
Então Segue Abaixo:
[b:e3d60b964b]Rotina Passada Pelo Amigo Emerson.En[/b:e3d60b964b]
function MesesEntreDatas(dDataInicial, dDataFinal: TDate): integer; var Anosi, Mesesi, Diasi: integer; Anosf, Mesesf, Diasf: integer; Anos, Meses, Dias: Word; begin DecodeDate(dDataInicial,Anos,Meses,Dias); anosi:=Anos; Mesesi:=Meses; DiasI:=Dias; Decodedate(dDataFinal,Anos,Meses,Dias); anosF:=Anos; MesesF:=Meses; DiasF:=Dias; AnosF:=Abs(AnosF-AnosI); MesesF:=(MesesF-Mesesi); DiasF:=(DiasF-Diasi); if MesesF < 0 Then begin Dec(AnosF); Inc(MesesF,12); end; if DiasF < 0 then Dec(MesesF); Result :=abs(MesesF + (AnosF * 12)); end;
Para Chamar a Função Faça:
procedure TForm1.Button2Click(Sender: TObject); var DataInicial,DataFinal:TDate; begin datainicial:=StrToDate(´28/02/2005´); dataFinal:=StrToDate(´01/03/2005´); Showmessage(IntToStr(Meses(DataInicial, DataFinal))); end;
Faça vários teste e nos comunique :arrow:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)