05. oktober 2004 - 16:06Der er
10 kommentarer og 1 løsning
DateTime gymnastik
Hejsa
JEg har et lille problem jeg er kørt fast i. Har to DateTime pickers med Kind sat til dtkTime så der kun kan vælges en tid deri. Den ene, dtModeTid angiver hvornår en person møder, og dtSlutTid angiver hvornår vedkommende har fri. Det jeg skal er så at regne ud hvor længe vedkommende har været på arbejde. Der er så det finurlige ved det at det er natarbejde, så angvives mødetiden til at være kl. 21 og sluttiden til 05 så dur minutesbetween jo ikke helt. Jeg har forsøgt med følgende mulighed, som dog giver nogle underlige resultater indimellem:
procedure TForm1.dtModeTidChange(Sender: TObject); var Min: Cardinal; begin dtModeTid.OnChange := nil; dtSlutTid.OnChange := nil;
if (dtSlutTid.DateTime < dtModeTid.DateTime) then dtSlutTid.DateTime := Tomorrow + TimeOf(dtSlutTid.DateTime) else dtSlutTid.DateTime := Today + TimeOf(dtSlutTid.DateTime);
Tror det vil være bedst at finde en løsning hvor man bruger Delphi's MinutesBetween funktion, men den dur ikke helt umiddelbart da felterne ikke kender til datoen...
Det lykkedes sq - har hvis bare stirret mig blind på det. Følgende kode gjorde tricket: Min := MinutesBetween(dtModeTid.DateTime, dtSlutTid.DateTime); if (dtModeTid.Time > dtSlutTid.Time) then Min := 1440 - Min;
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.