Autor Beitrag
teamrocket0
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mi 13.09.06 17:53 
Schau dir mal die Unit DateUtils an.

_________________
Markus Kinzler.
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 13.09.06 17:58 
oder machs einfach so

ausblenden 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

//Wenn zeitraum String ist:
zeitraum:= formatdatetime('dd.mm.yyyy hh:nn:ss', datum2-datum1);
//setzt natürlich vorraus das Datum1 älter ist als Datum2 =)

//Wenn zeitraum TDateTime ist
zeitraum:= datum2-datum1;
//und schon steht der Zeitunterschied in zeitraum
//Kannst du über formatdatetime('deinFormat', zeitraum) jeder beliebigen String-Variable zuweisen.


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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Do 14.09.06 16:22 
Ganz einfach:

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Do 14.09.06 16:34 
[Fehler] Unit1.pas(395): Undefinierter Bezeichner: 'hoursbetween'

Schade eigentlich.
Wie kann ich das beheben?
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Do 14.09.06 16:36 
hast du die unit DateUtils unter uses eingebunden?

_________________
Anonymes Eckenkind
teamrocket0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Do 14.09.06 16:46 
Ehm, nein, habe ich dummerweise nicht. :?:
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Do 14.09.06 16:49 
und? funktioniert es jetzt?!

_________________
Anonymes Eckenkind
teamrocket0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Do 14.09.06 17:06 
Jo, Nun gehts.
Jetzt kann ich Miri un ZeitGeist87 zu den Credits adden! :les:

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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: 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

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

WinXP
Delphi XE
BeitragVerfasst: Sa 24.02.07 04:35 
user profile iconZeitGeist87 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

WinXP
Delphi XE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Sa 24.02.07 04:52 
user profile iconCodexX 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 238
Erhaltene Danke: 4

Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
BeitragVerfasst: Sa 24.02.07 05:34 
Moin ...,
versuchs doch mal so
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

WinXP
Delphi XE
BeitragVerfasst: Sa 24.02.07 14:01 
user profile iconHelgeLange hat folgendes geschrieben:
user profile iconCodexX 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 238
Erhaltene Danke: 4

Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
BeitragVerfasst: Sa 24.02.07 16:14 
Hallo ...,
@CodexX, einfach mal tief durchatmen :roll: . Wahrscheinlich war das keine böse Absicht.

user profile iconCodexX 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