Fórum SOMA DE MESES...? #175014
14/08/2003
0
Como faço para contar quantos meses tem o período entre duas datas informadas?
EX: de (01/07/2002) a (13/08/2003) = é 13
EU TERIA DE TER A RESPOSTA ´13´ QUE É A SOMA DOS MESES, EM 1 ANO E UM MÊS.
preciso muito deste help! :oops: :oops: :oops: :oops: :oops:
Ramos - Bté-Ce
Erivando
Curtir tópico
+ 0Posts
14/08/2003
Pgarcia
Gostei + 0
14/08/2003
Marcelo Saviski
Procedure EntreDatas(DataFinal,DataInicial : TDate ; var Anos,Meses,Dias : Integer) ; // // Retorna a diferença em Dias,Meses e Anos entre 2 datas // Function Calcula(Periodo : Integer) : Integer ; var intCont : Integer ; begin intCont := 0 ; Repeat Inc(intCont) ; DataFinal := IncMonth(DataFinal,Periodo * -1) ; Until DataFinal < DataInicial ; DataFinal := IncMonth(DataFinal,Periodo) ; Inc(intCont,-1) ; Result := intCont ; End ; begin if DataFinal <= DataInicial then begin Anos := 0 ; Meses := 0 ; Dias := 0 ; exit ; end; Anos := Calcula(12) ; Meses := Calcula(1) ; Dias := Round(DataFinal - DataInicial) ; end;
Gostei + 0
14/08/2003
Roger_malk
Teve algum problema com a dica que te madei ontem.
Teste com as datas que vc passou de exemplo e funcionou perfeitamente:
Teste com três edit e 1 button
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
dateutils;
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.text <> ´´ then
if edit2.Text <> ´´ then
edit3.Text:=
inttostr(monthsbetween(strtodate(edit1.Text), strtodate(edit2.text)));
end;
end.espero tr ajudado.
roger_malk
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)