![]() |
TDateTime
Also folgendes Problem:
Ich möchte 2 Daten subtrahieren. Jedoch kommt immer eine falsche Jahreszahl raus (Jahreszahl + 1900). Es handelt sich um ein Konsolenprogramm.
Delphi-Quellcode:
Wo ist mein Fehler? o_O
program date1;
{$APPTYPE CONSOLE} uses SysUtils; var date1, date2, date3 : String; mdate1, mdate2, mdate3 : TDateTime; begin WriteLn('Bitte geben Sie das 1. Datum ein: [dd.mm.yyyy]'); ReadLn(date1); WriteLn('Bitte geben Sie das 2. Datum ein: [dd.mm.yyyy]'); ReadLn(date2); mdate1 := StrToDate(date1); mdate2 := StrToDate(date2); mdate3 := mdate1 - mdate2; date3 := DateToStr(mdate3); WriteLn('Die Differenz betraegt: ', date3); ReadLn end. |
Re: TDateTime
Hi. Ist das erste Datum größer oder kleiner als das erste? ;) Ich könnte mir vorstellen, dass bei 16.05.1903 - 01.12.2054 irgendwas falsches rauskommt.
Man liest sich, Stanlay :hi: |
Re: TDateTime
Ohh ganz vergessen. Ich gehe davon aus der Anwender automatisch das erste Datum als größeres nimmt.
z.B. 10.05.2004 08.02.2002 oder so ... |
Re: TDateTime
Jetzt fällt mir grade ein: Was soll denn dabei rauskommen? Die Anzahl der Tag zwischen den zwei Daten? Dann schau dir mal in der OH "DaysBetween" an, das könnte dir weiterhelfen :)
Man liest sich, Stanlay :hi: |
Re: TDateTime
moin,
wenn du als Ergebnis ein Datumsformat haben möchtest kannst du auch die Konstante "DateDelta" von der Differenz subtrahieren. Aber ich würde an deiner Stelle lieber die "...Between" Funktionen verwenden. |
Re: TDateTime
kann man in einem konsolenprogramm eine funktion aufrufen? weil da zeigt er mir immer nen error ^^
//EDIT: hat denn jmd einen bsp code für die daysbetween function? |
Re: TDateTime
wozu gibts die OH :roll: :
Zitat:
|
Re: TDateTime
oder als Code:
Delphi-Quellcode:
EDIT: uses-Klausel vergessen ...
uses ..., DateUtils;
... procedure ... var Differenz: integer; Startzeit, EndZeit: tDatetime; begin Differenz := Daysbetween( Startzeit, Endzeit ); end; |
Re: TDateTime
jo thx erstmal bin gerade dahintergestiegen warum der oben genannte code nicht funktioniert.
hab gehört die windows zeitrechnung fängt erst 1899 an. Somit kann er nicht das ja 3 ausgeben sondern zählt die 3 + 1899 und kommt so auf 1902. ^^ naja egal ...teste dann einfach weiter |
Re: TDateTime
Hi!
Warum ziehst du dann nicht einfach 1899 ab? Ciao fkerber |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz