Avatar billede kayb Nybegynder
30. januar 2002 - 08:43 Der er 8 kommentarer og
1 løsning

Tidsregistrering

Er der nogle der kender en måde at udregne tiden mellem to tider på?
Det må ikke være med TTIme eller TDateTime for de virker ikke.Forklaring følger:
Tid1 = 11:00
Tid2 = 01:00
hvis man trækker de to fra hinnanden med enten TTime eller TDateTime giver resultatet 9 timer men det er jo faktisk 13 timer.Det jeg mangler er en udregning der kører over hele døgnet.
Avatar billede puppetmaster Nybegynder
30. januar 2002 - 08:53 #1
Jeg kender ikke noget til Delphi programmering, men det lyder som noget man kan klare med en konvertering af de to tider til milisekunder, subtract og konverter tilbage til timer, min og sek.
Avatar billede kayb Nybegynder
30. januar 2002 - 08:55 #2
Resultatet giver selvfølgelig 10 timer. My mistake...
Avatar billede kayb Nybegynder
30. januar 2002 - 08:57 #3
Det går rigtigt godt det her..Fordi det er faktisk 14 timer.
Avatar billede idle Nybegynder
30. januar 2002 - 09:01 #4
Det der altså reelt er tale om er, at det er tidspunkter på to forskellige dage. Så du skal have fortalt delphi, at Tid2 er dagen efter Tid1.
Et simpelt check: hvis (Tid1 < Tid2)så Tid1 := Tid1 + 24 timer.
Jeg ved ikke om TTime kan håndtere det, men ellers kan TDateTime sikkert.
Avatar billede stone Forsker
30. januar 2002 - 09:23 #5
hvis du bruger database kan du bruge dette eksempel:
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
  if
table1starttid.AsdateTime <>
table1sluttid.AsDateTime then
table1tid.AsDateTime :=
table1starttid.AsdateTime -
table1sluttid.AsdateTime;
Avatar billede kayb Nybegynder
30. januar 2002 - 09:35 #6
>> Stone
Kan ikke bruges, som jeg har beskrevet i mit spørgsmål.Resultatet giver
10.

>>idle
Nogle tider går godt med din teori, men andre ikke.Men jeg er kommet
et skridt videre i den rigtige retning.
Avatar billede martinlind Nybegynder
30. januar 2002 - 09:36 #7
Du skal bare tage dato'en med så regner delphi fint

procedure TForm1.Button1Click(Sender: TObject);
VAR
  T1,T2,T3 : TDateTime;
begin
  T1 := StrToDateTime('01-01-2001 11:00');
  T2 := StrToDateTime('02-01-2001 01:00');
  Edit1.Text := TimeToStr(T2-T1);
end;

Giver 14 timer
Avatar billede kayb Nybegynder
30. januar 2002 - 09:47 #8
Ja selvfølgelig, hvor er det engentlig nemt når man ser det.. :-)
Takker for hjælpen..
Avatar billede martinlind Nybegynder
30. januar 2002 - 09:49 #9
Selv tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester