UCommon
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes
ucommon::Date Class Reference

The Date class uses a julian date representation of the current year, month, and day. More...

#include <datetime.h>

Inheritance diagram for ucommon::Date:
Inheritance graph
[legend]

Public Types

enum  index_t { year = 10, month, day, dow }
 index elements.

Public Member Functions

 Date (time_t value)
 Create a julian date from a time_t type.
 Date (struct tm *object)
 Create a julian date from a local or gmt date and time.
 Date (const char *pointer, size_t size=0)
 Create a julian date from a ISO date string of a specified size.
 Date (int year, unsigned month=1, unsigned day=1)
 Create a julian date from an arbitrary year, month, and day.
 Date (const Date &object)
 Create a julian date object from another object.
 Date ()
 Construct a new julian date with today's date.
char * get (char *buffer) const
 Get a ISO string representation of the date (yyyy-mm-dd).
long get (void) const
 Get the date as a number for the object or 0 if invalid.
unsigned getDay (void) const
 Get the day of the month of the date.
unsigned getDayOfWeek (void) const
 Get the day of the week (0-7).
long getJulian (void)
 Get the julian number of a date.
unsigned getMonth (void) const
 Get the month of the date (1-12).
time_t getTime (void) const
 Get a time_t for the julian date if in time_t epoch.
int getYear (void) const
 Get the year of the date.
bool isValid (void) const
 Check if date is valid.
 operator bool () const
 Check if julian date is valid for is() expression.
 operator long () const
 Casting operator to return date as number.
bool operator! () const
 Check if julian date is not valid.
bool operator!= (const Date &date)
 Compare julian dates if not same date.
String operator() () const
 Expression operator to return an ISO date string for the current julian date.
long operator* () const
 Access julian value.
Date operator+ (long days)
 Add days to julian date in an expression.
Dateoperator++ ()
 Increment date by one day.
Dateoperator+= (long offset)
 Increment date by offset.
Date operator- (long days)
 Subtract days from a julian date in an expression.
long operator- (const Date &date)
 Operator to compute number of days between two dates.
Dateoperator-- ()
 Decrement date by one day.
Dateoperator-= (long offset)
 Decrement date by offset.
bool operator< (const Date &date)
 Compare julian date if earlier than another date.
bool operator<= (const Date &date)
 Compare julian date if earlier than or equal to another date.
Dateoperator= (const Date &date)
 Assign date from another date object.
bool operator== (const Date &date)
 Compare julian dates if same date.
bool operator> (const Date &date)
 Compare julian date if later than another date.
bool operator>= (const Date &date)
 Compare julian date if later than or equal to another date.
int operator[] (index_t component) const
 Access numeric components.
void set (void)
 Set (update) the date with current date.
void set (const char *pointer, size_t size=0)
 Set the julian date based on an ISO date string of specified size.
virtual ~Date ()
 Destroy julian date object.

Static Public Attributes

static const size_t sz_string
 Size of date string field.

Protected Member Functions

void fromJulian (char *buf) const
void toJulian (long year, long month, long day)
virtual void update (void)
 A method to use to "post" any changed values when shadowing a mixed object class.

Protected Attributes

long julian

Detailed Description

The Date class uses a julian date representation of the current year, month, and day.

This is then manipulated in several forms and may be exported as needed.

Author:
David Sugar <dyfet@ostel.com> julian number based date class.

Constructor & Destructor Documentation

ucommon::Date::Date ( time_t  value)

Create a julian date from a time_t type.

Parameters:
valuefrom time()
ucommon::Date::Date ( struct tm *  object)

Create a julian date from a local or gmt date and time.

Parameters:
objectfrom DateTime::glt() or gmt().
ucommon::Date::Date ( const char *  pointer,
size_t  size = 0 
)

Create a julian date from a ISO date string of a specified size.

Parameters:
pointerto ISO date string.
sizeof date field if not null terminated.
ucommon::Date::Date ( int  year,
unsigned  month = 1,
unsigned  day = 1 
)

Create a julian date from an arbitrary year, month, and day.

Parameters:
yearof date.
monthof date (1-12).
dayof month (1-31).
ucommon::Date::Date ( const Date object)

Create a julian date object from another object.

Parameters:
objectto copy.

Member Function Documentation

char* ucommon::Date::get ( char *  buffer) const

Get a ISO string representation of the date (yyyy-mm-dd).

Parameters:
bufferto store string.
Returns:
string representation.

Reimplemented in ucommon::DateTime.

long ucommon::Date::get ( void  ) const

Get the date as a number for the object or 0 if invalid.

Returns:
date as number.

Reimplemented in ucommon::DateTime.

unsigned ucommon::Date::getDay ( void  ) const

Get the day of the month of the date.

Returns:
day of month
unsigned ucommon::Date::getDayOfWeek ( void  ) const

Get the day of the week (0-7).

Returns:
day of week
long ucommon::Date::getJulian ( void  ) [inline]

Get the julian number of a date.

Returns:
julian number.

Definition at line 169 of file datetime.h.

unsigned ucommon::Date::getMonth ( void  ) const

Get the month of the date (1-12).

Returns:
month of year
time_t ucommon::Date::getTime ( void  ) const

Get a time_t for the julian date if in time_t epoch.

Returns:
time_t or -1 if out of range.
int ucommon::Date::getYear ( void  ) const

Get the year of the date.

Returns:
year of the date
bool ucommon::Date::isValid ( void  ) const

Check if date is valid.

Returns:
true if julian date is valid.

Reimplemented in ucommon::DateTime.

ucommon::Date::operator bool ( ) const [inline]

Check if julian date is valid for is() expression.

Returns:
true if date is valid.

Reimplemented in ucommon::DateTime.

Definition at line 345 of file datetime.h.

ucommon::Date::operator long ( ) const [inline]

Casting operator to return date as number.

Returns:
julian number.

Reimplemented in ucommon::DateTime.

Definition at line 213 of file datetime.h.

bool ucommon::Date::operator! ( ) const [inline]

Check if julian date is not valid.

Returns:
true if date is invalid.

Reimplemented in ucommon::DateTime.

Definition at line 338 of file datetime.h.

bool ucommon::Date::operator!= ( const Date date)

Compare julian dates if not same date.

Parameters:
dateto compare with.
Returns:
true if not same.
String ucommon::Date::operator() ( ) const

Expression operator to return an ISO date string for the current julian date.

Returns:
ISO date string.
long ucommon::Date::operator* ( ) const [inline]

Access julian value.

Returns:
julian number of object.

Definition at line 227 of file datetime.h.

Date ucommon::Date::operator+ ( long  days)

Add days to julian date in an expression.

Parameters:
daysto add.
Returns:
new date object with modified days.

Reimplemented in ucommon::DateTime.

Date& ucommon::Date::operator++ ( )

Increment date by one day.

Returns:
instance of current date object.

Reimplemented in ucommon::DateTime.

Date& ucommon::Date::operator+= ( long  offset)

Increment date by offset.

Parameters:
offsetto add to julian date.
Returns:
instance of current date object.

Reimplemented in ucommon::DateTime.

Date ucommon::Date::operator- ( long  days)

Subtract days from a julian date in an expression.

Parameters:
daysto subtract.
Returns:
new date object with modified days.

Reimplemented in ucommon::DateTime.

long ucommon::Date::operator- ( const Date date) [inline]

Operator to compute number of days between two dates.

Parameters:
dateoffset for computation.
Returns:
number of days difference.

Definition at line 282 of file datetime.h.

Date& ucommon::Date::operator-- ( )

Decrement date by one day.

Returns:
instance of current date object.

Reimplemented in ucommon::DateTime.

Date& ucommon::Date::operator-= ( long  offset)

Decrement date by offset.

Parameters:
offsetto subtract from julian date.
Returns:
instance of current date object.

Reimplemented in ucommon::DateTime.

bool ucommon::Date::operator< ( const Date date)

Compare julian date if earlier than another date.

Parameters:
dateto compare with.
Returns:
true if earlier.
bool ucommon::Date::operator<= ( const Date date)

Compare julian date if earlier than or equal to another date.

Parameters:
dateto compare with.
Returns:
true if earlier or same.
Date& ucommon::Date::operator= ( const Date date)

Assign date from another date object.

Parameters:
dateobject to assign from.
Returns:
current modified date object.
bool ucommon::Date::operator== ( const Date date)

Compare julian dates if same date.

Parameters:
dateto compare with.
Returns:
true if same.
bool ucommon::Date::operator> ( const Date date)

Compare julian date if later than another date.

Parameters:
dateto compare with.
Returns:
true if later.
bool ucommon::Date::operator>= ( const Date date)

Compare julian date if later than or equal to another date.

Parameters:
dateto compare with.
Returns:
true if later or same.
int ucommon::Date::operator[] ( index_t  component) const

Access numeric components.

Parameters:
componentto access.
Returns:
value of component.

Reimplemented in ucommon::DateTime.

void ucommon::Date::set ( const char *  pointer,
size_t  size = 0 
)

Set the julian date based on an ISO date string of specified size.

Parameters:
pointerto date string field.
sizeof field if not null terminated.
virtual void ucommon::Date::update ( void  ) [protected, virtual]

A method to use to "post" any changed values when shadowing a mixed object class.

This is used by DateNumber and string classes.

Reimplemented in ucommon::DateNumber, ucommon::DateTimeString, and ucommon::DateTime.


The documentation for this class was generated from the following file: