Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions

ucc::DateTime Class Reference

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

#include <datetime.h>

Inheritance diagram for ucc::DateTime:
Inheritance graph
[legend]
Collaboration diagram for ucc::DateTime:
Collaboration graph
[legend]

Public Types

enum  index_t {
  year = Date::year, month = Date::month, day = Date::day, dow = Date::dow,
  hour = Time::hour, minute = Time::minute, second = Time::second
}
 

Index to components we can access.


Public Member Functions

 DateTime (time_t time)
 Construct a date and time from C library time_t type.
 DateTime (tm_t *tm)
 Construct a date and time from C library time structure.
 DateTime (int year, unsigned month, unsigned day, int hour=0, int minute=0, int second=0)
 Construct a date and time object from explicit date and time values.
 DateTime (DateTime &object)
 Create a datetime object from another object.
 DateTime (char *pointer, size_t size=0)
 Construct a date and time from ISO string buffer.
 DateTime ()
 Construct a new date and time object with current date and time.
String format (char *strftime)
 Return date and time formatted using strftime format values.
char * get (char *buffer)
 Get a ISO formatted date and time string for current object.
time_t get (void)
 Get C library time_t type if object in C library epoch range.
bool isValid (void)
 Test if object is valid.
 operator bool ()
 Test is date and time is valid for is() operator.
 operator double ()
 Convert date and time to julian day number.
 operator long ()
 Casting operator to return date as number.
bool operator! ()
 Check if date and time is not valid.
bool operator!= (DateTime &datetime)
 Compare date and time with another date and time to see if not same.
DateTime operator+ (long seconds)
 Add seconds to datetime in an expression.
DateTimeoperator++ ()
 Add a day from the current date and time.
DateTimeoperator+= (long seconds)
 Add seconds to the current datetime object.
DateTime operator- (long seconds)
 Subtract seconds from datetime in an expression.
long operator- (DateTime &datetime)
 Operator to compute number of days between two dates.
DateTimeoperator-- ()
 Subtract a day from the current date and time.
DateTimeoperator-= (long seconds)
 Subtract seconds from current datetime object.
bool operator< (DateTime &datetime)
 Compare date and time with another date and time to see if earlier.
bool operator<= (DateTime &datetime)
 Compare date and time with another date and time to see if earlier or the same.
DateTimeoperator= (DateTime &datetime)
 Assign date and time from another datetime object.
bool operator== (DateTime &datetime)
 Compare date and time with another date and time to see if the same.
bool operator> (DateTime &datetime)
 Compare date and time with another date and time to see if later.
bool operator>= (DateTime &datetime)
 Compare date and time with another date and time to see if later or the same.
int operator[] (index_t component)
 Access time components.
void set (void)
 Set (update) the date and time with current date and time.
virtual ~DateTime ()
 Destroy date and time object.

Static Public Member Functions

static tm_tglt (time_t *time=NULL)
 Fetch an instance of time converted to local time.
static tm_tgmt (time_t *time=NULL)
 Fetch an instance of time converted to gmt.
static void release (tm_t *object)
 Release a struct tm object from glt or gmt.

Static Public Attributes

static long c_day
 Constant for number of seconds in a day.
static long c_hour
 Constant for number of seconds in a hour.
static long c_week
 Constant for number of seconds in a week.
static size_t sz_string
 Size of datetime string field.

Protected Member Functions

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

Detailed Description

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

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

Author:
Marcelo Dalmas <mad@brasmap.com.br> Integer based time class.

Definition at line 620 of file datetime.h.


Constructor & Destructor Documentation

ucc::DateTime::DateTime ( time_t  time  ) 

Construct a date and time from C library time_t type.

Parameters:
time type to make date and time from.
ucc::DateTime::DateTime ( tm_t tm  ) 

Construct a date and time from C library time structure.

Parameters:
tm structure from C library (from glt or gmt).
ucc::DateTime::DateTime ( char *  pointer,
size_t  size = 0 
)

Construct a date and time from ISO string buffer.

Parameters:
pointer to string field holding date and time.
size of field if not null terminated string.
ucc::DateTime::DateTime ( int  year,
unsigned  month,
unsigned  day,
int  hour = 0,
int  minute = 0,
int  second = 0 
)

Construct a date and time object from explicit date and time values.

Parameters:
year of object.
month of object (1-12).
day of month of object (1-31).
hour of object (0-23).
minute of object (0-59).
second of object (0-59).
ucc::DateTime::DateTime ( DateTime object  ) 

Create a datetime object from another object.

Parameters:
object to copy.

Member Function Documentation

String ucc::DateTime::format ( char *  strftime  ) 

Return date and time formatted using strftime format values.

Parameters:
strftime format to use.
Returns:
String object with formatted time.
char* ucc::DateTime::get ( char *  buffer  ) 

Get a ISO formatted date and time string for current object.

Parameters:
buffer to store date and time in (yyyy-mm-dd hh:mm:ss).
Returns:
string buffer if object is valid.

Reimplemented from ucc::Date.

time_t ucc::DateTime::get ( void   ) 

Get C library time_t type if object in C library epoch range.

Returns:
time in seconds from epoch or ~0l if out of range.

Reimplemented from ucc::Date.

static tm_t* ucc::DateTime::glt ( time_t *  time = NULL  )  [static]

Fetch an instance of time converted to local time.

If the localtime abi is not re-entrant, than a lock is held, otherwise a unique object is returned. In either case, when you are done, you must release the object.

Parameters:
time object or NULL if using current time.
Returns:
locked instance of struct tm object.
static tm_t* ucc::DateTime::gmt ( time_t *  time = NULL  )  [static]

Fetch an instance of time converted to gmt.

If the gmtime abi is not re-entrant, than a lock is held, otherwise a unique object is returned. In either case, when you are done, you must release the object.

Parameters:
time object or NULL if using current time.
Returns:
locked instance of struct tm object.
bool ucc::DateTime::isValid ( void   ) 

Test if object is valid.

Returns:
true if object is valid.

Reimplemented from ucc::Date.

ucc::DateTime::operator bool (  ) 

Test is date and time is valid for is() operator.

Returns:
true if object is valid.

Reimplemented from ucc::Date.

ucc::DateTime::operator double (  ) 

Convert date and time to julian day number.

Returns:
julian day number as a double.
ucc::DateTime::operator long (  )  [inline]

Casting operator to return date as number.

Returns:
date as a number.

Reimplemented from ucc::Date.

Definition at line 844 of file datetime.h.

bool ucc::DateTime::operator! (  ) 

Check if date and time is not valid.

Returns:
true if not valid.

Reimplemented from ucc::Date.

bool ucc::DateTime::operator!= ( DateTime datetime  ) 

Compare date and time with another date and time to see if not same.

Parameters:
datetime to compare with.
Returns:
true if not equal.
DateTime ucc::DateTime::operator+ ( long  seconds  ) 

Add seconds to datetime in an expression.

Day overflows update julian date.

Parameters:
seconds to add to datetime.
Returns:
new modified datetime object.

Reimplemented from ucc::Date.

DateTime& ucc::DateTime::operator++ (  ) 

Add a day from the current date and time.

Returns:
datetime object reference that was modified.

Reimplemented from ucc::Date.

DateTime& ucc::DateTime::operator+= ( long  seconds  ) 

Add seconds to the current datetime object.

Day overflows update julian date.

Parameters:
seconds to add to object.
Returns:
modified datetime object.

Reimplemented from ucc::Date.

DateTime ucc::DateTime::operator- ( long  seconds  ) 

Subtract seconds from datetime in an expression.

Day underflows update julian date.

Parameters:
seconds to subtract from datetime.
Returns:
new modified datetime object.

Reimplemented from ucc::Date.

long ucc::DateTime::operator- ( DateTime datetime  ) 

Operator to compute number of days between two dates.

Parameters:
datetime to offset from for computation.
Returns:
number of days difference.
DateTime& ucc::DateTime::operator-- (  ) 

Subtract a day from the current date and time.

Returns:
datetime object reference that was modified.

Reimplemented from ucc::Date.

DateTime& ucc::DateTime::operator-= ( long  seconds  ) 

Subtract seconds from current datetime object.

Day underflows update julian date.

Parameters:
seconds to subtract from object.
Returns:
modified datetime object.

Reimplemented from ucc::Date.

bool ucc::DateTime::operator< ( DateTime datetime  ) 

Compare date and time with another date and time to see if earlier.

Parameters:
datetime to compare with.
Returns:
true if earlier.
bool ucc::DateTime::operator<= ( DateTime datetime  ) 

Compare date and time with another date and time to see if earlier or the same.

Parameters:
datetime to compare with.
Returns:
true if earlier or equal.
DateTime& ucc::DateTime::operator= ( DateTime datetime  ) 

Assign date and time from another datetime object.

Parameters:
datetime object to assign from.
Returns:
assigned datetime object.
bool ucc::DateTime::operator== ( DateTime datetime  ) 

Compare date and time with another date and time to see if the same.

Parameters:
datetime to compare with.
Returns:
true if equal.
bool ucc::DateTime::operator> ( DateTime datetime  ) 

Compare date and time with another date and time to see if later.

Parameters:
datetime to compare with.
Returns:
true if later.
bool ucc::DateTime::operator>= ( DateTime datetime  ) 

Compare date and time with another date and time to see if later or the same.

Parameters:
datetime to compare with.
Returns:
true if later or equal.
int ucc::DateTime::operator[] ( index_t  component  ) 

Access time components.

Parameters:
component to access.
Returns:
number or -1 if invalid.

Reimplemented from ucc::Date.

static void ucc::DateTime::release ( tm_t object  )  [static]

Release a struct tm object from glt or gmt.

Parameters:
object to release.
void ucc::DateTime::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 from ucc::Date.

Reimplemented in ucc::DateTimeString.


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