Fórum Como subtrair datas? #225868
14/04/2004
0
Eu queria subtrair uma data de outra e queria que a diferença de dias fosse dada em nímeros inteiros.
Alguém pode me ajudar?
Obrigado.
Tusuariocomponent
Curtir tópico
+ 0Posts
14/04/2004
Marco Salles
Experimente Fazer:Código:
procedure TForm1.Button1Click(Sender: TObject); var data0,data1,data2:TTime; begin data0:=0; showmessage(DateToStr(Data0)); //data 30/12/1899 Padrão data1:=1; showmessage(DateToStr(Data1));//data 31/12/1899 data2:=2; showmessage(DateToStr(Data2));//data 01/01/1900 end;
Isto Vem ate os dias de hoje.....E Qual a Vantagem Disto A Vantagem é Simples...É Mais Fácil Somar Ou Diminuir Inteiros do que Datas
Experimente Isto:
Código:
procedure TForm1.Button1Click(Sender: TObject); var data:TTime; begin data:=0; showmessage(DateToStr(Data));//data 30/12/1899 data:=data-1; showmessage(DateToStr(Data));//data 29/12/1899 data:=data+2; showmessage(DateToStr(Data));//data 31/12/1899 end;
Conclusão:Para Subtrair datas éntão fica fácil
Código:
procedure TForm1.Button1Click(Sender: TObject); var datainicial,datafinal:Tdate; Dias:Inteiro; begin datainicial:=StrToDate(Edit1.text); dataFinal:=StrToDate(Edit2.text); dias:=DataFinal-DataInicial; end;
P:S Para Testar so copie e cole e F9
Obs: O Tipo TDateTime é Um Numero de ponto Flutuante...Se voce Precissar Trabalhar so com Datas Define uma Variável doTipo TDate , Se Alem Disto Voce Precissar Trabalhar Simultaneamente com Horas , defina sua variável do tipo TDateTime
Gostei + 0
14/04/2004
Rômulo Barros
Gostei + 0
14/04/2004
Marco Salles
O [b:33594937f7]Tipo de Variável [/b:33594937f7]que me referiro é o tipo definido pelo delphi...Eu gostaria de entender sua colocação com mais detalhe :?: :?: ...Não precisa ser no ORACLE Não, Pode ser em Qualquer Banco....[b:33594937f7]Eu estou apenas Operando em cima de variáveis e não em cima de tipos defindidos por Um ou outro banco em Particula[/b:33594937f7]r...Se voce pudesse ser mais claro eu ficaria muito grato. Porque poderia estar revendo o meu conceito...Quanto a Subtrair Datas, nós todos sabemos, que existe uma função na Unit DateUtils e bla,bla,bla...So Que eu entendo, que a colocação do tipo TDate Como inteiro é um dado que deve ser levantado e muitos deixam isto por despercebido...
Gostei + 0
14/04/2004
Ltres
procedure TForm1.Button1Click(Sender: TObject); var x: integer; begin x := DaysBetween(Now, StrToDateTime(´1/1/2000´)); ShowMessage(IntToStr(x)); end;
Gostei + 0
15/04/2004
Tusuariocomponent
Conseguí resolver o meu problema.
Valeu mesmo.
Gostei + 0
15/04/2004
Marco Salles
LTres;
[b:64801eebb0]Esta me referindo exatamente a esta função, e conclui:[/b:64801eebb0]
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)