GARANTIR DESCONTO

Fórum SOMA DE MESES...? #175014

14/08/2003

0

oI TURMA!!! :lol:

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

Erivando

Responder

Posts

14/08/2003

Pgarcia

Se as duas variaveis for TDateTime, basta fazer a operação de subtração normal. O resultado é a quantidade de dias, ai vc divide por 30.


Responder

Gostei + 0

14/08/2003

Marcelo Saviski

tirado das 800 dicas e truques delphi >> www.lloydsoft.hpg.ig.com.br

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;



Responder

Gostei + 0

14/08/2003

Roger_malk

Olá INFORAMOS:

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar