EderDias 0 Denunciar post Postado Julho 15, 2005 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
@beto 0 Denunciar post Postado Julho 15, 2005 caro eder... olha nois aqui otra veis... tenta isso... if (strtoint(Dbedit2dataSaida.text) - strtoint(dbedit1dataentrada.text)) = (strtoint(dbedit3NrDias)) then /// (qtd de dias) begin codigo1(); end else begin codigo2(); end; http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
bastard2003 4 Denunciar post Postado Julho 15, 2005 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
EderDias 0 Denunciar post Postado Julho 15, 2005 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
EderDias 0 Denunciar post Postado Julho 15, 2005 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