Mit TDateTime rechnen und andere Datumsfunktionn

Die folgenden Funktionen habe ich erst sehr spät entdeckt. Leider werden sie auch mit keinem Wort in der Klasse TDateTime erwähnt, noch sind sie Bestandteile der Klasse. Letzteres empfinde ich als ausgesprochen ärgerlich. Schließlich will man ja mal mit einem Datum rechnen. Zwar hat die Klasse diverse Operatoren überlagert, aber das ist meist nicht das was mal gerade braucht.

Zu beachten ist, dass für alle Funktionen die

#include <DateUtils.hpp>

includiert wird.

Hier nun die Funktionen, die einen doch ein bisschen Arbeit abnehmen:

Diese Funktionen arbeiten alle gleich. Sie erwarten als Übergabeparameter ein TDateTime Objekt und einen Wert. Ist der Wert negativ wird zurückgerechnnet. Beispiel:

String ausgabe;
TDateTime dt=Now();
ausgabe=dt.DateTimeString(); //heutiges Datum
dt=IncYear(dt,-20);
ausgabe=dt.DateTimeString(); //vor 20 Jahren

Weiterhin gibt es Funktionen, die ein bestehendes Datum abändern. Dies sind:

Diese Funktionen arbeiten alle gleich. Sie erwarten als Übergabeparameter ein TDateTime Objekt und einen Wert. Der Wert wird als neuer Bestandteil des TDateTime Objektes eingefügt. Beispiel:

String ausgabe;
TDateTime dt=Now();
ausgabe=dt.DateTimeString(); //heutiges Datum
dt=RecodeYear(dt,1890);
ausgabe=dt.DateTimeString(); //Jahr wird auf 1890 gesetzt.

Zusätzlich gibt es noch

mit denen ganze Daten und Zeitwerte auf einmal geändert werden können.

Weitere Funktionen (der Name dürfte sprechend sein):

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

Die Funktionen werden alle in der Hilfe erläutert.

Zur Übersicht