Contar dias entre 2 datas, tudo bem, mas...

Delphi

12/04/2004

Olá pessoal,
estive vendo aí um modo de saber quandtos dias ha entre duas datas diferentes.
Pois bem, foi simples, bastou usar o seguinte:
(Uses: dateutils)
var
dias:integer;
begin
ShortDateFormat:=´dd/mm/yyyy´;
dias:=DaysBetween(DATE,strtodate(venc.Text));
showmessage(inttostr(dias));

Bem, o problema é q esse cód acima esta exibindo apenas os dias q há de diferença um do outro.
Mas eu preciso contar os dias depois deles já terem passados de uma certa data.
então não adianta if dias > 0 pois até mesmo q o primeiro seja menor vai dar a mesma coisa.

Então alguem saberia a solução?


Valeu,
Rafael


Lipsil

Lipsil

Curtidas 0

Respostas

Zottis

Zottis

12/04/2004

Não entendi muito bem o que você Precisa, mas eu faço assim:
(Campo Tipo Date)
Caption:= Format(´faltam :¬s´,[TabelaCampo.value - date]);
espero que te ajude.
OBs não lembro se é (TabelaCampo.value - date) ou (date-TabelaCampo.value)
espero que te ajude.

Zottis


GOSTEI 0
Lipsil

Lipsil

12/04/2004

Valew kra..
mas pela lógica acho q isso não funcionaria não.. pra se trabalhar com dias, meses e anos é muito mais complexo, mas pra resumir o trabalho fiz em com dateutils, usando o q usei acima... e queria apenas saber se o dia de hoje é maior ou menor ao dia de 10/09/2004


GOSTEI 0
Zottis

Zottis

12/04/2004

if date < 10/09/2004 then...
ou
if date < TabelaTalCampoTal.value (Tipo Date)


GOSTEI 0
Sremulador

Sremulador

12/04/2004

var
dias:integer;
Data: Tdatetime;
begin
Data:= StrtoDate (Textocomdata);
ShortDateFormat:=´dd/mm/yyyy´;
dias:=DaysBetween(Data,strtodate(venc.Text));
showmessage(inttostr(dias));

Acho que isso deve resolver


GOSTEI 0
Marco Salles

Marco Salles

12/04/2004

queria apenas saber se o dia de hoje é maior ou menor ao dia de 10/09/2004

O Tipo TDate é Um Numero INTEIRO.... O Que Significa isto :?: :?: Significa que se voce tiver definido uma variável do tipo TDate e ela[b:a788070612] ´Valer´ Zero[/b:a788070612], corresponde a Data 30/12/1899....
[b:a788070612]Experimente Fazer:[/b:a788070612]
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...[b:a788070612]É Mais Fácil Somar Ou Diminuir Inteiros do que Datas[/b:a788070612]
[b:a788070612]Experimente Isto:[/b:a788070612]
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;

pra se trabalhar com dias, meses e anos é muito mais complexo, mas pra resumir o trabalho fiz em com dateutils, usando o q usei acima


[b:a788070612]Como voce esta vendo, não é tão complexo assim.....[/b:a788070612]

Concluão:Para Saber se uma determinada data é maior , igual, ou menor a uma outra data basta comparar o resultado da subtração...[b:a788070612]Experimente:[/b:a788070612]
procedure TForm1.Button1Click(Sender: TObject);
var
datainicial,datafinal:Tdate;
begin
datainicial:=StrToDate(Edit1.text);
dataFinal:=StrToDate(Edit2.text);
if (datafinal-datainicial)>0 then
 showmessage(´é maior´)
else
 if (datafinal-datainicial=0) then
   showmessage(´é igual´)
 else
   showmessage(´é menor´)
end;


[b:a788070612]P:S Para Testar so copie e cole e F9[/b:a788070612]

Para Finalisar Tres Observações:

1)Será Que Deu Para Entender :?:

2)Sobre o Ultimo Tópico Que eu Lhe Respondi, Voce Não Deu Retorno : :evil: Se Funcionou :P , Se Não Funcionou :cry: e Porque :?: etc..Ás vezes é muito importante para quem responde um tópico, saber se ele[b:a788070612] não [/b:a788070612]funcionou e porque :idea:

3)[b:a788070612]´zottis´[/b:a788070612] Como Voce é feio, Cara..... :P :P :P :P :P :P


GOSTEI 0
Zottis

Zottis

12/04/2004

Fazer O que.

Ainda bem que feiura não é defeito, defeito é não enxergar bem.


Qualquer coisa estamos aí, mesmo sendo feio pra caramba.

OBS.

Eu não preciso mais ser bonito, pois já casei.

Zottis


GOSTEI 0
Marco Salles

Marco Salles

12/04/2004

Ainda bem que feiura não é defeito, defeito é não enxergar bem.

Relaxa cara :wink: , Tava Só Brincando :P :P :P :P


GOSTEI 0
POSTAR