Wt
3.2.1
|
A value class that represents a date on the Gregorian calendar. More...
#include <Wt/WDate>
Public Member Functions | |
WDate () | |
Construct a Null date. | |
WDate (int year, int month, int day) | |
Specify a date by year, month, and day. | |
void | setDate (int year, int month, int day) |
Sets the date by year, month, and day. | |
WDate | addDays (int ndays) const |
Adds days. | |
WDate | addMonths (int nmonths) const |
Adds months. | |
WDate | addYears (int nyears) const |
Adds years. | |
bool | isNull () const |
Returns if this date is Null. | |
bool | isValid () const |
Returns if this date is valid. | |
int | year () const |
Returns the year. | |
int | month () const |
Returns the month (1-12). | |
int | day () const |
Returns the day of month (1-31). | |
int | dayOfWeek () const |
Returns the day of week (1-7). | |
int | daysTo (const WDate &date) const |
Returns the difference between two dates (in days). | |
int | toJulianDay () const |
Converts the date to a Julian day. | |
bool | operator< (const WDate &other) const |
Compares two dates. | |
bool | operator<= (const WDate &other) const |
Compares two dates. | |
bool | operator> (const WDate &other) const |
Compares two dates. | |
bool | operator>= (const WDate &other) const |
Compares two dates. | |
bool | operator== (const WDate &other) const |
Compares two dates. | |
bool | operator!= (const WDate &other) const |
Compares two dates. | |
WString | toString () const |
Formats this date to a string using a default format. | |
WString | toString (const WString &format) const |
Formats this date to a string using a specified format. | |
Static Public Member Functions | |
static WDate | fromString (const WString &s) |
Parses a string to a date using a default format. | |
static WDate | fromString (const WString &s, const WString &format) |
Parses a string to a date using a specified format. | |
static WDate | currentDate () |
Reports the current client date. | |
static WDate | currentServerDate () |
Reports the current server date. | |
static bool | isLeapYear (int year) |
Returns whether the given year is a leap year. | |
static WString | shortDayName (int weekday) |
Returns the short day name. | |
static WString | shortMonthName (int month) |
Returns the short month name. | |
static WString | longDayName (int weekday) |
Returns the long day name. | |
static WString | longMonthName (int month) |
Returns the long month name. |
A value class that represents a date on the Gregorian calendar.
Class which holds a date on the gregorian calendar, specified as day/month/year.
A WDate may either specify a valid date, or be a Null date (using the default constructor WDate::WDate(), for which isNull() returns true
).
A valid date may be specified by year, month, and day of month (using the WDate(year, month, day) constructor, or the setDate() method). When attempting to specify an invalid date (with an impossible combination of year/month/date), isIvalid() will return false
.
The class provides a flexible way for converting between strings and dates. Use toString() to convert to strings, and fromString() for parsing strings. Both methods take a format string, and the same format syntax is supported by both methods.
Simple operations are supported to compare dates, or to calculate with dates. These operations throw InvalidDateException when one of the dates is invalid.
If the thread using a WDate is bound to a WApplication (i.e. WApplication::instance() does not return 0), the date strings can be localized by overriding the default values for the localized string keys in the resource bundles of the WApplication:
If the thread using a WDate is not bound to a WApplication (i.e. WApplication::instance() returns 0), english strings will be used.
Internationalization affects both WDate to string conversions and string to WDate conversion.
Wt::WDate::WDate | ( | ) |
Wt::WDate::WDate | ( | int | year, |
int | month, | ||
int | day | ||
) |
WDate Wt::WDate::addDays | ( | int | ndays | ) | const |
Adds days.
Returns a date that is ndays
later than this date. Negative values for ndays
will result in a date that is as many days earlier.
WDate Wt::WDate::addMonths | ( | int | nmonths | ) | const |
Adds months.
Returns a date that is the same day of the month, but nmonths
later than this date. Negative values for nmonths
will result in a date that is as many months earlier.
WDate Wt::WDate::addYears | ( | int | nyears | ) | const |
Adds years.
Returns a date that is nyears
later than this date. Negative values for nyears
will result in a date that is as many years earlier.
WDate Wt::WDate::currentDate | ( | ) | [static] |
Reports the current client date.
This method uses browser information to retrieve the date that is configured in the client.
WDate Wt::WDate::currentServerDate | ( | ) | [static] |
Reports the current server date.
This method returns the date as indicated by the system clock of the server.
int Wt::WDate::dayOfWeek | ( | ) | const |
Returns the day of week (1-7).
Returns the day of week, from Monday (=1) to Sunday (=7).
Parses a string to a date using a default format.
The default format
is "ddd MMM d yyyy". For example, a date specified as:
"Wed Aug 29 2007"
will be parsed as a date that equals a date constructed as:
WDate d(2007,8,29);
When the date could not be parsed or is not valid, an invalid date is returned (for which isValid() returns false).
Parses a string to a date using a specified format.
The format
follows the same syntax as used by toString(const WString& format).
When the date could not be parsed or is not valid, an invalid date is returned (for which isValid() returns false).
bool Wt::WDate::isLeapYear | ( | int | year | ) | [static] |
Returns whether the given year is a leap year.
A leap year has 29 days in February, in case you wondered.
bool Wt::WDate::isNull | ( | ) | const |
bool Wt::WDate::isValid | ( | ) | const |
Returns if this date is valid.
WString Wt::WDate::longDayName | ( | int | weekday | ) | [static] |
Returns the long day name.
Results (for given weekDay
) are (default English):
"Monday" (1),
"Tuesday" (2),
"Wednesday" (3),
"Thursday" (4),
"Friday" (5),
"Saturday" (6),
"Sunday" (7).
The result is affected by localization using the "Wt.WDate.Monday" to "Wt.WDate.Sunday" keys.
WString Wt::WDate::longMonthName | ( | int | month | ) | [static] |
Returns the long month name.
Results (for given month
) are (default English):
"January" (1),
"February" (2),
"March" (3),
"April" (4),
"May" (5),
"June" (6),
"July" (7),
"August" (8),
"September" (9),
"October" (10),
"November" (11),
"December" (12).
The result is affected by localization using the "Wt.WDate.January" to "Wt.WDate.December" keys.
void Wt::WDate::setDate | ( | int | year, |
int | month, | ||
int | day | ||
) |
Sets the date by year, month, and day.
The month
has range 1-12 and the day
has range 1-31. When the new date is invalid, isValid() is set to false
.
WString Wt::WDate::shortDayName | ( | int | weekday | ) | [static] |
Returns the short day name.
Results (for given weekDay
) are (default English):
"Mon" (1),
"Tue" (2),
"Wed" (3),
"Thu" (4),
"Fri" (5),
"Sat" (6),
"Sun" (7).
The result is affected by localization using the "Wt.WDate.Mon" to "Wt.WDate.Sun" keys.
WString Wt::WDate::shortMonthName | ( | int | month | ) | [static] |
Returns the short month name.
Results (for given month
) are (default English):
"Jan" (1),
"Feb" (2),
"Mar" (3),
"Apr" (4),
"May" (5),
"Jun" (6),
"Jul" (7),
"Aug" (8),
"Sep" (9),
"Oct" (10),
"Nov" (11),
"Dec" (12)
.
The result is affected by localization using the "Wt.WDate.Jan" to "Wt.WDate.Dec" keys.
int Wt::WDate::toJulianDay | ( | ) | const |
Converts the date to a Julian day.
WString Wt::WDate::toString | ( | ) | const |
Formats this date to a string using a default format.
The default format
is "ddd MMM d yyyy". For example, a date constructed as:
WDate d(2007,8,29);
will be formatted as:
"Wed Aug 29 2007"
Formats this date to a string using a specified format.
The format
is a string in which the following contents has a special meaning.
Code | Meaning | Example (for Mon Aug 3 2007) |
d | The day without leading zero (1-31) | 3 |
dd | The day with leading zero (01-31) | 03 |
ddd | The day abbreviated using shortDayName() | Mon |
dddd | The day abbreviated using longDayName() | Monday |
M | The month without leading zero (1-12) | 8 |
MM | The month with leading zero (01-12) | 08 |
MMM | The month abbreviated using shortMonthName() | Aug |
MMMM | The month abbreviated using longMonthName() | August |
yy | The year as a two-digit number (00-99) | 07 |
yyyy | The year as a four-digit number (-9999-9999) | 2007 |
Any other text is kept literally. String content between single quotes (') are not interpreted as special codes. Inside a string, a literal quote may be specifed using a double quote ('').
Examples of format and result:
Format | Result (for Mon Aug 3 2007) |
ddd MMM d yyyy | Mon Aug 3 2007 |
dd/MM/yyyy | 03/08/2007 |
dddd, MMM d, yyyy | Wednesday, Aug 3, 2007 |
'MM': MM, 'd': d, 'yyyy': yyyy | MM: 08, d: 3, yyyy: 2007 |