Table of Contents

IBPP::Date

The IBPP::Date class represents a date value. It is not an interface class, with automatic smart pointer management like for instance the Database class. It is a plain classical C++ class. Use it to interact easily with DATE (SQL) columns in your databases.

Definition

See the file ibpp.h for an up-to-date definition.

A Date is internally made of a simple integer, representing the numbers of days elapsed since the 31 december 1899 (which means the 1 january 1900 value is 1). Being made only of an integer as its data part, the class Date is a light object which you can use without fear of bulky data structures.

Methods

void Clear()

Resets the date to an invalid value (actually -1), effectively clearing the value.

void Today()

Sets the date to today's date.

void SetDate(int year, int month, int day)

Sets the date based on the numeric values of the year, month and day. Any invalid values will lead to an invalid date value (-1).

SetDate(int dt)

Sets the date based on a integer value, as the one internally stored in the date object itself. See the int GetDate() method too.

void GetDate(int& year, int& month, int& day)

Gets a date in its basic components year, month, day.

int GetDate()

Returns the internal integer representing the date value.

int Year(), int Month(), int Day()

Returns the year, month, day value of the Date.

void Add(int days)

Add days to a date. The new date is the original one, 'days' later. This of course takes care of everything, overlapping months and years, months or different numbers of days, leap years,…

void StartOfMonth()

Adjust a date to the first day of the same month.

void EndOfMonth()

Adjust a date to the last day of the same month, taking into consideration months of varying number of days, including leap years support.

Constructors

Date()

The default constructructor builds an empty date (invalid value), same as if Clear() was called on an existing date.

Date(int dt)

Similarly to the SetDate(int) method, this form of the constructor builds a date out of the internal representation of another one.

Date(int year, int month, int day)

Similarly to the SetDate(int, int, int) method, this form of the constructor builds a date our of its basic components (year, month, day).

Date(const Date&)

Ordinary copy constructor. To make the Date a good citizen of your code.

Operators

Date& operator=(const Date&)

To assign a date from another one.

Date& operator=(const Timestamp&)

To assign a date from the date portion of a Timestamp object.

bool operator==(const Date&)

To compare two Dates for equality.

bool operator<(const Date&)

To compare if one Date is strictly 'lower' (the date is before) the other.

See also

These classes are closely related to this one :