Wt: Wt::WDate Class Reference

Wt 3.3.0

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions
Wt::WDate Class Reference

A value class that represents a date on the Gregorian calendar. More...

`#include <Wt/WDate>`

List of all members.

## Public Member Functions
| WDate ()
| Construct a Null date.
| WDate (const boost::gregorian::date &date)
| Construct a 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.
void | setGregorianDate (const boost::gregorian::date &date)
| Sets the date.
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 | fromJulianDay (int jd)
| Converts a Julian Day jd to a WDate .
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, bool localized=true)
| Returns the short day name.
static WString | shortMonthName (int month, bool localized=true)
| Returns the short month name.
static WString | longDayName (int weekday, bool localized=true)
| Returns the long day name.
static WString | longMonthName (int month, bool localized=true)
| Returns the long month name.

## Detailed Description

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.

### i18n

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:

- Short day names: Wt.WDate.Mon through Wt.WDate.Sun
- Long day names: Wt.WDate.Monday through Wt.WDate.Sunday
- Short month names: Wt.WDate.Jan through Wt.WDate.Dec
- Long month names: Wt.WDate.January through Wt.WDate.December

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.

## Constructor & Destructor Documentation

Wt::WDate::WDate | ( |  | ) |

Construct a Null date.

A date for which isNull() returns `true`. A `Null` date is also invalid.

See also:
  isValid(), isNull()

Wt::WDate::WDate | ( | int | year,
|  | int | month,
|  | int | day
| ) |  |

Specify a date by year, month, and day.

The `month` has range 1-12 and the `day` has range 1-31. When the date is invalid, isValid() is set to `false`.

See also:
  setDate(), year(), month(), day()

## Member Function Documentation

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.

See also:
  addMonths(), addYears()

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.

See also:
  addDays(), addYears()

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.

See also:
  addDays(), addMonths()

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.

Note:
  Not Yet Implemented !

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).

WDate Wt::WDate::fromJulianDay | ( | int | jd | ) | `[static]`

Converts a Julian Day jd to a WDate .

See also:
  toJulianDay() const

WDate Wt::WDate::fromString | ( | const WString & | s | ) | `[static]`

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).

See also:
  fromString(const WString& s, const WString& format), isValid()

WDate Wt::WDate::fromString | ( | const WString & | s,
|  | const WString & | format
| ) |  | `[static]`

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).

See also:
  toString(const WString&) const

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

Returns if this date is Null.

A null date is also invalid.

See also:
  isValid(), WDate()

bool Wt::WDate::isValid | ( |  | ) | const

Returns if this date is valid.

See also:
  isNull(), WDate(int, int, int), setDate()

WString Wt::WDate::longDayName | ( | int | weekday,
|  | bool | localized = `true`
| ) |  | `[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.

See also:
  shortDayName()

WString Wt::WDate::longMonthName | ( | int | month,
|  | bool | localized = `true`
| ) |  | `[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.

See also:
  shortDayName()

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`.

See also:
  WDate(int year, int month, int day), year(), month(), day()

WString Wt::WDate::shortDayName | ( | int | weekday,
|  | bool | localized = `true`
| ) |  | `[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.

See also:
  longDayName()

WString Wt::WDate::shortMonthName | ( | int | month,
|  | bool | localized = `true`
| ) |  | `[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.

See also:
  longMonthName()

int Wt::WDate::toJulianDay | ( |  | ) | const

Converts the date to a Julian day.

See also:
  fromJulianDay()

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"

See also:
  toString(const WString& format) const, fromString()

WString Wt::WDate::toString | ( | const WString & | format | ) | const

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

See also:
  fromString(const WString& value, const WString& format)

All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator