Avatar billede Slettet bruger
08. december 2008 - 11:14 Der er 5 kommentarer og
1 løsning

Antal dage mellem 2 datoer, Delphi 5

Hvordan kan jeg finde antallet af dage mellem 2 datoer i Delphi 5...

Daysbetween funktionen virker tilsyneladen ikke i denne version af Delphi....

Nogle gode forslag?
Avatar billede kroning Nybegynder
08. december 2008 - 11:45 #1
AntalDage:=Trunc(Dato2-Dato1);
Avatar billede kroning Nybegynder
08. december 2008 - 12:47 #2
Og et svar hvis du kan bruge det. Koden er den samme som Daysbetween.
Avatar billede hrc Mester
08. december 2008 - 13:06 #3
Det skal nok passe at D5'eren ikke har en DateUtils-unit.

TDateTime er ellers meget ligetil, idet det er en Double-type hvor heltalsdelen er antallet af dage siden 31-12-1899 mens decimaldelen er milisekunder siden midnat. Det er altså ikke raketvidenskab.

Spørgsmålet er her om man skal barbere decimalerne væk før eller efter de to datoer subtraheres.
Avatar billede kroning Nybegynder
08. december 2008 - 13:22 #4
Hvis det skal være hele dage altså 24 timer så skal decimalerne først væk efter at de 2 datoer substraheres ellers kan man få et forkert resultat:

F.eks.
Dato1:=1.4;
Dato2:=2.2;

Antallet af dage imellem er 0 (der mangler 0,2 før der er gået 24 timer)

Antal:=Trunc(Dato2)-Trunc(Dato1)=1; // forkert
Antal:=Trunc(Dato2-Dato1)=0; // korrekt
Avatar billede martinlind Nybegynder
08. december 2008 - 15:25 #5
Fra DateUtils :

function SpanOfNowAndThen(const ANow, AThen: TDateTime): TDateTime;
begin
  if ANow < AThen then
    Result := AThen - ANow
  else
    Result := ANow - AThen;
end;

function DaySpan(const ANow, AThen: TDateTime): Double;
begin
  Result := SpanOfNowAndThen(ANow, AThen);
end;


function DaysBetween(const ANow, AThen: TDateTime): Integer;
begin
  Result := Trunc(DaySpan(ANow, AThen));
end;
Avatar billede Slettet bruger
08. december 2008 - 19:50 #6
Mange tak for alle jeres forslag.

Jeg benyttede mig af kronings forslag
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

IT-JOB

Netcompany A/S

Managing Architect

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Tech Lead til Datacenter Operations

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger chef for Lokal IT i hovedstadsområdet

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Teknisk systemansvarlig / ingeniør inden for taktisk datalink