Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EderDias

Diminuir Datas---Usando Dbedit´s

Recommended Posts

Ola....eu tenho um pequeno banco de dados paradox...e estou querendo lancar a data de entrada e a data de saida e depois o resultado em dias sair num terceiro dbedit

 

 

Dbedit2dataSaida.text - dbedit1dataentrada.text = dbedit3NrDias (qtd de dias)

 

Alguem poderia dar uma dica....como fazer isto??

 

Grato

 

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

se esse 3° editi for so pra mostrar o resultado de dias... ñ coloca um DBedit e sim um simples edit mesmo... tenta fazer algo do tipo::edtDiasTotal.text:= strtoint(Dbedit2dataSaida.text) - strtoint(dbedit1dataentrada.text)axo eu q vai resolver...PS:: esse codigo ai seria pra ti fazer apenas um EDIT SIMPLES receber o resultado de dias

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo...@Beto.....diz que não a data não é um valor inteiro....acho que tem algo de errado no seu codigo......hehehe :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok...Resolvido....achei esta dica....funciona perfeitamente......

o erro que tava dando anteriormente é que nas configurações regionais do meu micro tava a data neste formato...

05/05/2005 e agora mudei para 05/05/05

 

ai funcionou..

 

segue a UNit completa:

 

unit UPeriodo;interfaceuses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  StdCtrls, Buttons;type  TForm1 = class(TForm)    Button1: TButton;    GroupBox1: TGroupBox;    Edit1: TEdit;    Label4: TLabel;    Edit2: TEdit;    Label5: TLabel;    GroupBox2: TGroupBox;    lblDias: TLabel;    lblDatas: TLabel;    lblData1: TLabel;    lblData2: TLabel;    BitBtn1: TBitBtn;    procedure Button1Click(Sender: TObject);  private      { Private declarations }  public  Procedure Resultado;    { Public declarations }  end;var                      Form1: TForm1;          D1,D2,M1,M2,A1,A2: String;Periodo1,Periodo2,Ano,Valor,Bis1,Bis2: Integer;implementation{$R *.DFM}function AnoBis1(Data: TDateTime): Boolean;varDia,Mes,Ano : Word;beginDecodeDate(Data,Ano,Mes,Dia);if Ano mod 4 <> 0 then   Bis1 := 0else   if Ano mod 100 <> 0 then      Bis1 := 1   else      if Ano mod 400 <> 0 then         Bis1 := 0      else         Bis1 := 1;end;function AnoBis2(Data: TDateTime): Boolean;varDia,Mes,Ano : Word;beginDecodeDate(Data,Ano,Mes,Dia);if Ano mod 4 <> 0 then   Bis2 := 0else   if Ano mod 100 <> 0 then      Bis2 := 1   else      if Ano mod 400 <> 0 then         Bis2 := 0      else         Bis2 := 1;end;Procedure TForm1.Resultado;beginlblDatas.Caption:='Data2 - Data1 =';lblDias.Caption:='Resultado em dias: '+IntToStr(Ano+Valor)+' dia(s)';lblData1.Caption:='Data1 Periodo: '+IntToStr(Periodo1);lblData2.Caption:='Data2 Periodo: '+IntToStr(Periodo2);end;Procedure Periodo(P1,P2,D1,D2,A1,A2: Integer);var A,B,Mes1,Mes2: Integer;beginMes1:=P1;Mes2:=P2;Case P1 of   1 : P1:= 31;   2 : P1:= 59;   3 : P1:= 90;   4 : P1:= 120;   5 : P1:= 151;   6 : P1:= 181;   7 : P1:= 212;   8 : P1:= 243;   9 : P1:= 273;  10 : P1:= 304;  11 : P1:= 334;  12 : P1:= 365;End;Case P2 of   1 : P2:= 31;   2 : P2:= 59;   3 : P2:= 90;   4 : P2:= 120;   5 : P2:= 151;   6 : P2:= 181;   7 : P2:= 212;   8 : P2:= 243;   9 : P2:= 273;  10 : P2:= 304;  11 : P2:= 334;  12 : P2:= 365;End;Case Mes1 of   1 : Mes1:= 31;   2 : Mes1:= 28;   3 : Mes1:= 31;   4 : Mes1:= 30;   5 : Mes1:= 31;   6 : Mes1:= 30;   7 : Mes1:= 31;   8 : Mes1:= 31;   9 : Mes1:= 30;  10 : Mes1:= 31;  11 : Mes1:= 30;  12 : Mes1:= 31;End;Case Mes2 of   1 : Mes2:= 31;   2 : Mes2:= 28;   3 : Mes2:= 31;   4 : Mes2:= 30;   5 : Mes2:= 31;   6 : Mes2:= 30;   7 : Mes2:= 31;   8 : Mes2:= 31;   9 : Mes2:= 30;  10 : Mes2:= 31;  11 : Mes2:= 30;  12 : Mes2:= 31;End;if Bis1 = 1 Then A:=(P1-(Mes1-D1)) else if P1 = 28 then A:=(P1-(Mes1-D1)+1) else A:=(P1-(Mes1-D1)); Periodo1:=A;if Bis2 = 1 ThenB:=(P2-(Mes2-D2)) else if P2 = 28 then B:=(P2-(Mes2-D2)+1) else B:=(P2-(Mes2-D2));Periodo2:=B;Valor:=(B-A);Ano:=((A2-A1)*366);end;procedure TForm1.Button1Click(Sender: TObject);Var  Data1, Data2: TDate;beginAnoBis1(StrToDate(Edit1.Text));AnoBis2(StrToDate(Edit2.Text));Data1:=StrToDate(Edit1.Text);D1:=FormatDateTime('d',Data1);M1:=FormatDateTime('m',Data1);A1:=FormatDateTime('yyyy',Data1);Data2:=StrToDate(Edit2.Text);D2:=FormatDateTime('d',Data2);M2:=FormatDateTime('m',Data2);A2:=FormatDateTime('yyyy',Data2);Periodo(StrToInt(M1),StrToInt(M2),StrToInt(D1),StrToInt(D2),StrToInt(A1),StrToInt(A2));Resultado;end;end.

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.