Autor |
Beitrag |
teamrocket0
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: Mi 13.09.06 17:51
Moin!
Kann mir jemand dabei helfen mit datum und Zeit zu rechnen?
Ich wollte die diverenz zwischen 2 Tagen mit Uhrzeit ermitteln.
Zum Beispiel:
11.12.2006 12:30:95 -
12.12.2006 12:30:95 =
24 Stunden/1 Tag
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Mi 13.09.06 17:53
Schau dir mal die Unit DateUtils an.
_________________ Markus Kinzler.
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mi 13.09.06 17:58
oder machs einfach so
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var datum1, datum2: TDateTime; zeitraum: TDateTime oder String; ... datum1:= now; datum2:= n anderes Datum
zeitraum:= formatdatetime('dd.mm.yyyy hh:nn:ss', datum2-datum1);
zeitraum:= datum2-datum1; |
Hoffe es hat geholfen
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Mi 13.09.06 18:07
Delphi-Hilfe hat folgendes geschrieben: | DateUtils Unit
Routinen
CompareDate
CompareDateTime
CompareTime
DateOf
DateTimeToJulianDate
DateTimeToModifiedJulianDate
DateTimeToUnix
DayOf
DayOfTheMonth
DayOfTheWeek
DayOfTheYear
DaysBetween
DaysInAMonth
DaysInAYear
DaysInMonth
DaysInYear
DaySpan
DecodeDateDay
DecodeDateMonthWeek
DecodeDateTime
DecodeDateWeek
DecodeDayOfWeekInMonth
EncodeDateDay
EncodeDateMonthWeek
EncodeDateTime
EncodeDateWeek
EncodeDayOfWeekInMonth
EndOfADay
EndOfAMonth
EndOfAWeek
EndOfAYear
EndOfTheDay
EndOfTheMonth
EndOfTheWeek
EndOfTheYear
HourOf
HourOfTheDay
HourOfTheMonth
HourOfTheWeek
HourOfTheYear
HoursBetween
HourSpan
IncDay
IncHour
IncMilliSecond
IncMinute
IncSecond
IncWeek
IncYear
IsInLeapYear
IsPM
IsSameDay
IsToday
IsValidDate
IsValidDateDay
IsValidDateMonthWeek
IsValidDateTime
IsValidDateWeek
IsValidTime
JulianDateToDateTime
MilliSecondOf
MilliSecondOfTheDay
MilliSecondOfTheHour
MilliSecondOfTheMinute
MilliSecondOfTheMonth
MilliSecondOfTheSecond
MilliSecondOfTheWeek
MilliSecondOfTheYear
MilliSecondsBetween
MilliSecondSpan
MinuteOf
MinuteOfTheDay
MinuteOfTheHour
MinuteOfTheMonth
MinuteOfTheWeek
MinuteOfTheYear
MinutesBetween
MinuteSpan
ModifiedJulianDateToDateTime
MonthOf
MonthOfTheYear
MonthsBetween
MonthSpan
NthDayOfWeek
RecodeDate
RecodeDateTime
RecodeDay
RecodeHour
RecodeMilliSecond
RecodeMinute
RecodeMonth
RecodeSecond
RecodeTime
RecodeYear
SameDate
SameDateTime
SameTime
SecondOf
SecondOfTheDay
SecondOfTheHour
SecondOfTheMinute
SecondOfTheMonth
SecondOfTheWeek
SecondOfTheYear
SecondsBetween
SecondSpan
StartOfADay
StartOfAMonth
StartOfAWeek
StartOfAYear
StartOfTheDay
StartOfTheMonth
StartOfTheWeek
StartOfTheYear
TimeOf
Today
Tomorrow
TryEncodeDateDay
TryEncodeDateMonthWeek
TryEncodeDateTime
TryEncodeDateWeek
TryEncodeDayOfWeekInMonth
TryJulianDateToDateTime
TryModifiedJulianDateToDateTime
TryRecodeDateTime
UnixToDateTime
WeekOf
WeekOfTheMonth
WeekOfTheYear
WeeksBetween
WeeksInAYear
WeeksInYear
WeekSpan
WithinPastDays
WithinPastHours
WithinPastMilliSeconds
WithinPastMinutes
WithinPastMonths
WithinPastSeconds
WithinPastWeeks
WithinPastYears
YearOf
YearsBetween
YearSpan
Yesterday
|
_________________ Markus Kinzler.
|
|
teamrocket0 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: Do 14.09.06 16:18
Hm.
Ich glaube die Funktion "HoursBetween" scheint das richtige zu sein. Heißt ja Stunden dazwischen oder?
Damit kann man glaube ich was anfangen, weiß aber nicht wie.
Edit: Habe gerade in der Delphi-Hilfe gelesen:
Beschreibung
Mit HoursBetween können Sie die Differenz zwischen zwei TDateTime-Werten in Stunden ermitteln. HoursBetween zählt nur vollständige Stunden. Deshalb meldet HoursBetween als Differenz zwischen 9:00 Uhr und 9:59:59 Uhr den Wert Null, da die Differenz um eine Sekunde kürzer als eine Stunde ist.
Ist also doch nicht ganz das richtige. "MinutesBetween" wäre genauer!
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Do 14.09.06 16:22
Ganz einfach:
Delphi-Quelltext 1: 2: 3:
| var stunden: integer; stunden:= hoursbetween(dieAktuellereZeit, dieZeitInDerVergangenheit); zurück kriegst du die Stunden |
Denk schon das der Rückgabewert der Funktion Integer ist!
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
teamrocket0 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: Do 14.09.06 16:34
[Fehler] Unit1.pas(395): Undefinierter Bezeichner: 'hoursbetween'
Schade eigentlich.
Wie kann ich das beheben?
|
|
Miri
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Do 14.09.06 16:36
hast du die unit DateUtils unter uses eingebunden?
_________________ Anonymes Eckenkind
|
|
teamrocket0 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: Do 14.09.06 16:46
Ehm, nein, habe ich dummerweise nicht. 
|
|
Miri
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Do 14.09.06 16:49
und? funktioniert es jetzt?!
_________________ Anonymes Eckenkind
|
|
teamrocket0 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: Do 14.09.06 17:06
Jo, Nun gehts.
Jetzt kann ich Miri un ZeitGeist87 zu den Credits adden!
Jetzt muss ich nur noch die Zeit, die man in einem EditMask eingibt, zu dem Datum, das in einem Label angezeigt wird, adden:
Label: 14.10.2006
EditMask: 17:09:30
Ergebniss soll sein: 14.10.2006 17:09:30 (oder so ähnlich)
Problem ist hierbei das Umwandeln von String in Date(für mich jedenfals)
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Fr 15.09.06 07:30
für die umwandlung von nem String in ein TDateTime-Format ist nicht schwierig
machs doch einfach mit StrToDate(deinStringderDatumWerdenSoll)
Rückgabewert der Funktion ist was vom Typ?
Richtig!
TDateTime also
Delphi-Quelltext 1: 2: 3: 4:
| var myDatum: TDateTime; ... myDatum:= StrToDate(deinStringderDatumWerdenSoll); ... |
Damit es keine Exception (Fehlermeldung) gibt, kannst du ja vorher prüfen, ob es ein gültiges Datum ist.
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
teamrocket0 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: Fr 15.09.06 14:57
Super, jetzt funtz es.
Hat vorher bestimmt nicht funktioniert weil ich "DateUtils" nicht bei "uses" eingetragen habe.
Nochmals danke an:
mkinzler
ZeitGeist87
Miri
|
|
CodexX
      
Beiträge: 118
WinXP
Delphi XE
|
Verfasst: Sa 24.02.07 04:35
ZeitGeist87 hat folgendes geschrieben: | Damit es keine Exception (Fehlermeldung) gibt, kannst du ja vorher prüfen, ob es ein gültiges Datum ist. |
Auf der Suche nach genau diesem Punkt bin ich hier in diesem Thread gelandet.
Wie Prüfe ich denn einen String, ob es ein Datum ist?
"24.02.2007"-> Datum
"Beliebig"-> kein Datum
Die IsValidDate u.ä. Befehle wollen ja einzelne Eingaben für Jahr, Monat und Tag. Muss ich das wirklich erst auseinandernehmen? Oder gibt es etwas wie IsDate('24.02.2007')?
|
|
HelgeLange
      
Beiträge: 735
Erhaltene Danke: 6
Windows 7
Delphi7 - Delphi XE
|
Verfasst: Sa 24.02.07 04:38
Es gibt doch ein fertiges Kalender-Control, das nimmt doch eh nur Datum/Uhrzeit an...
_________________ "Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
|
|
CodexX
      
Beiträge: 118
WinXP
Delphi XE
|
Verfasst: Sa 24.02.07 04:44
Wozu brauche ich denn ein Kalender-Control??
Ich muss mit einem Datum rechnen, das ich aus einem String beziehe. Sollte der String aber ein falsches Datumsformat enthalten, würde die Umwandlung mit StrToDate() eine hässliche Fehlermeldung ausgeben. Das möchte ich mit einer vorangehenden Überprüfung vermeiden.
|
|
HelgeLange
      
Beiträge: 735
Erhaltene Danke: 6
Windows 7
Delphi7 - Delphi XE
|
Verfasst: Sa 24.02.07 04:52
CodexX hat folgendes geschrieben: | Jetzt muss ich nur noch die Zeit, die man in einem EditMask eingibt, zu dem Datum, das in einem Label angezeigt wird, adden:
Label: 14.10.2006
EditMask: 17:09:30
.... |
Dazu?
_________________ "Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
|
|
Hobby-Programmierer
      
Beiträge: 238
Erhaltene Danke: 4
Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
|
Verfasst: Sa 24.02.07 05:34
Moin ...,
versuchs doch mal so Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| begin try dt:= StrToDateTime('11.11.2000 11:11'); ... ... ShowMessage('gültiges Datum'); except dt:= Now; ShowMessage('ungültiges Datum'); end; end; |
LG Mario
|
|
CodexX
      
Beiträge: 118
WinXP
Delphi XE
|
Verfasst: Sa 24.02.07 14:01
HelgeLange hat folgendes geschrieben: | CodexX hat folgendes geschrieben: | Jetzt muss ich nur noch die Zeit, die man in einem EditMask eingibt, zu dem Datum, das in einem Label angezeigt wird, adden:
Label: 14.10.2006
EditMask: 17:09:30
.... |
Dazu? |
Sag mal was soll der Quatsch?? Das habe ich nicht geschrieben. Warum fakest Du denn jetzt Zitate? Unverständlich und traurig sowas ...
@Hobby-Programmierer
Danke. Exception abfangen ist wahrscheinlich doch die beste Möglichkeit, wenn es keine Funktion wie angefragt gibt.
|
|
Hobby-Programmierer
      
Beiträge: 238
Erhaltene Danke: 4
Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
|
Verfasst: Sa 24.02.07 16:14
Hallo ...,
@CodexX, einfach mal tief durchatmen  . Wahrscheinlich war das keine böse Absicht.
CodexX hat folgendes geschrieben: | Exception abfangen ist wahrscheinlich doch die beste Möglichkeit, wenn es keine Funktion wie angefragt gibt. |
Mir ist eine solche Function in Delphi net bekannt und würde meiner Meinung auch keinen Sinn machen. Woher sollte diese Function wissen in welcher Reihenfolge das DatumZeit Format vorliegt? Was wäre zb mit Monatsbezeichnern ...
Ich hatte hier hier mal eine Funtion gepostet. Das Zeitformat muss aber auf jeden Fall bekannt sein.
LG Mario
|
|