A gregorian calendar date. 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 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 gregorian calendar date.
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.
This class is still missing localization support in its conversion methods from and to string representations.
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::isNull | ( | ) | const |
bool Wt::WDate::isValid | ( | ) | const [inline] |
Returns if this date is valid.
WString Wt::WDate::longDayName | ( | int | weekday | ) | [static] |
Returns the long day name.
Results (for given weekDay
) are:
"Monday" (1),
"Tuesday" (2),
"Wednesday" (3),
"Thursday" (4),
"Friday" (5),
"Saturday" (6),
"Sunday" (7).
WString Wt::WDate::longMonthName | ( | int | month | ) | [static] |
Returns the long month name.
Results (for given month
) are:
"January" (1),
"February" (2),
"March" (3),
"April" (4),
"May" (5),
"June" (6),
"July" (7),
"August" (8),
"September" (9),
"October" (10),
"November" (11),
"December" (12).
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:
"Mon" (1),
"Tue" (2),
"Wed" (3),
"Thu" (4),
"Fri" (5),
"Sat" (6),
"Sun" (7).
WString Wt::WDate::shortMonthName | ( | int | month | ) | [static] |
Returns the short month name.
Results (for given month
) are:
"Jan" (1),
"Feb" (2),
"Mar" (3),
"Apr" (4),
"May" (5),
"Jun" (6),
"Jul" (7),
"Aug" (8),
"Sep" (9),
"Oct" (10),
"Nov" (11),
"Dec" (12)
.
int Wt::WDate::toJulianDay | ( | ) | const |
Converts the date to a Julian day.
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 |