Date/Time class. More...

#include <datetime.h>

Public Types

enum  TimeZone { local_timezone , utc_timezone }
 

Public Member Functions

 DateTime ()
 Constructs a date/time object.
 
 DateTime (int year, int month, int day, int hour=0, int minute=0, int seconds=0, int nanoseconds=0, TimeZone timezone=utc_timezone)
 
 ~DateTime ()
 
DateTimeadd_days (int days)
 
DateTimeadd_months (int months)
 
DateTimeadd_years (int years)
 
unsigned char get_day () const
 
unsigned int get_day_of_week () const
 Get the day of the week.
 
int get_difference_in_days (const DateTime &other) const
 Returns the difference in days between two dates. This function is only accurate for the next few millenniums.
 
unsigned char get_hour () const
 
unsigned char get_minutes () const
 
unsigned char get_month () const
 Returns the month number in range 1-12.
 
unsigned int get_nanoseconds () const
 
unsigned char get_seconds () const
 
TimeZone get_timezone () const
 
unsigned char get_week () const
 Returns the ISO 8601 week number of the date.
 
unsigned short get_year () const
 
bool is_null () const
 
bool operator!= (const DateTime &other) const
 
bool operator< (const DateTime &other) const
 
bool operator<= (const DateTime &other) const
 
bool operator== (const DateTime &other) const
 
bool operator> (const DateTime &other) const
 
bool operator>= (const DateTime &other) const
 
void set_date (int year, int month, int day, int hour=0, int minute=0, int seconds=0, int nanoseconds=0, TimeZone timezone=utc_timezone)
 
void set_day (int day)
 
void set_hour (int hour)
 
void set_minutes (int minutes)
 
void set_month (int month)
 
void set_nanoseconds (int nanoseconds)
 
void set_null ()
 
void set_seconds (int seconds)
 
void set_timezone (TimeZone timezone)
 
void set_year (int year)
 
DateTime to_local () const
 
std::string to_long_date_string () const
 Mon Mar 3 2007.
 
std::string to_long_time_string () const
 hh:mm:ss
 
std::string to_short_date_string () const
 yyyy-mm-dd
 
std::string to_short_datetime_string () const
 yyyy-mm-dd hh:mm:ss
 
std::string to_short_time_string () const
 hh:mm
 
std::string to_string () const
 Mon Feb 3 12:32:54 2008.
 
int64_t to_ticks () const
 Converts the date to the number of 100-nanosecond intervals since January 1, 1601 UTC.
 
DateTime to_utc () const
 

Static Public Member Functions

static DateTime from_short_date_string (const std::string &value)
 
static DateTime get_current_local_time ()
 Get current system time in local time zone.
 
static DateTime get_current_utc_time ()
 Get current system time in UTC.
 
static int get_days_in_month (int month, int year)
 Returns the number of days in the given month.
 
static DateTime get_local_time_from_ticks (int64_t ticks)
 Converts a time tick value (number of 100-nanosecond intervals since January 1, 1601 UTC) to a date time in the local time zone.
 
static DateTime get_utc_time_from_ticks (int64_t ticks)
 Converts a time tick value (number of 100-nanosecond intervals since January 1, 1601 UTC) to a date time in UTC.
 

Detailed Description

Date/Time class.

Member Enumeration Documentation

◆ TimeZone

Enumerator
local_timezone 
utc_timezone 

Constructor & Destructor Documentation

◆ DateTime() [1/2]

◆ DateTime() [2/2]

clan::DateTime::DateTime ( int year,
int month,
int day,
int hour = 0,
int minute = 0,
int seconds = 0,
int nanoseconds = 0,
TimeZone timezone = utc_timezone )

References utc_timezone.

◆ ~DateTime()

clan::DateTime::~DateTime ( )

Member Function Documentation

◆ add_days()

DateTime & clan::DateTime::add_days ( int days)

References DateTime().

◆ add_months()

DateTime & clan::DateTime::add_months ( int months)

References DateTime().

◆ add_years()

DateTime & clan::DateTime::add_years ( int years)

References DateTime().

◆ from_short_date_string()

static DateTime clan::DateTime::from_short_date_string ( const std::string & value)
static

References DateTime().

◆ get_current_local_time()

static DateTime clan::DateTime::get_current_local_time ( )
static

Get current system time in local time zone.

References DateTime().

◆ get_current_utc_time()

static DateTime clan::DateTime::get_current_utc_time ( )
static

Get current system time in UTC.

References DateTime().

◆ get_day()

unsigned char clan::DateTime::get_day ( ) const

◆ get_day_of_week()

unsigned int clan::DateTime::get_day_of_week ( ) const

Get the day of the week.

Returns
0 = Sunday ... 6 = Saturday

◆ get_days_in_month()

static int clan::DateTime::get_days_in_month ( int month,
int year )
static

Returns the number of days in the given month.

Returns
number of days: 28-31.

◆ get_difference_in_days()

int clan::DateTime::get_difference_in_days ( const DateTime & other) const

Returns the difference in days between two dates. This function is only accurate for the next few millenniums.

Returns
Number of days between dates. Returns a negative value if 'other' is before 'this'.

References DateTime().

◆ get_hour()

unsigned char clan::DateTime::get_hour ( ) const

◆ get_local_time_from_ticks()

static DateTime clan::DateTime::get_local_time_from_ticks ( int64_t ticks)
static

Converts a time tick value (number of 100-nanosecond intervals since January 1, 1601 UTC) to a date time in the local time zone.

References DateTime().

◆ get_minutes()

unsigned char clan::DateTime::get_minutes ( ) const

◆ get_month()

unsigned char clan::DateTime::get_month ( ) const

Returns the month number in range 1-12.

Returns
1 = Jan ... 12 = December

◆ get_nanoseconds()

unsigned int clan::DateTime::get_nanoseconds ( ) const

◆ get_seconds()

unsigned char clan::DateTime::get_seconds ( ) const

◆ get_timezone()

TimeZone clan::DateTime::get_timezone ( ) const

◆ get_utc_time_from_ticks()

static DateTime clan::DateTime::get_utc_time_from_ticks ( int64_t ticks)
static

Converts a time tick value (number of 100-nanosecond intervals since January 1, 1601 UTC) to a date time in UTC.

References DateTime().

◆ get_week()

unsigned char clan::DateTime::get_week ( ) const

Returns the ISO 8601 week number of the date.

Returns
Week number: 1-53.

◆ get_year()

unsigned short clan::DateTime::get_year ( ) const

◆ is_null()

bool clan::DateTime::is_null ( ) const

◆ operator!=()

bool clan::DateTime::operator!= ( const DateTime & other) const

References DateTime(), and clan::g.

◆ operator<()

bool clan::DateTime::operator< ( const DateTime & other) const

References DateTime().

◆ operator<=()

bool clan::DateTime::operator<= ( const DateTime & other) const

References DateTime().

◆ operator==()

bool clan::DateTime::operator== ( const DateTime & other) const

References DateTime().

◆ operator>()

bool clan::DateTime::operator> ( const DateTime & other) const

References DateTime().

◆ operator>=()

bool clan::DateTime::operator>= ( const DateTime & other) const

References DateTime().

◆ set_date()

void clan::DateTime::set_date ( int year,
int month,
int day,
int hour = 0,
int minute = 0,
int seconds = 0,
int nanoseconds = 0,
TimeZone timezone = utc_timezone )

References utc_timezone.

◆ set_day()

void clan::DateTime::set_day ( int day)

◆ set_hour()

void clan::DateTime::set_hour ( int hour)

◆ set_minutes()

void clan::DateTime::set_minutes ( int minutes)

◆ set_month()

void clan::DateTime::set_month ( int month)

◆ set_nanoseconds()

void clan::DateTime::set_nanoseconds ( int nanoseconds)

◆ set_null()

void clan::DateTime::set_null ( )

◆ set_seconds()

void clan::DateTime::set_seconds ( int seconds)

◆ set_timezone()

void clan::DateTime::set_timezone ( TimeZone timezone)

◆ set_year()

void clan::DateTime::set_year ( int year)

◆ to_local()

DateTime clan::DateTime::to_local ( ) const

References DateTime().

◆ to_long_date_string()

std::string clan::DateTime::to_long_date_string ( ) const

Mon Mar 3 2007.

◆ to_long_time_string()

std::string clan::DateTime::to_long_time_string ( ) const

hh:mm:ss

◆ to_short_date_string()

std::string clan::DateTime::to_short_date_string ( ) const

yyyy-mm-dd

◆ to_short_datetime_string()

std::string clan::DateTime::to_short_datetime_string ( ) const

yyyy-mm-dd hh:mm:ss

◆ to_short_time_string()

std::string clan::DateTime::to_short_time_string ( ) const

hh:mm

◆ to_string()

std::string clan::DateTime::to_string ( ) const

Mon Feb 3 12:32:54 2008.

◆ to_ticks()

int64_t clan::DateTime::to_ticks ( ) const

Converts the date to the number of 100-nanosecond intervals since January 1, 1601 UTC.

◆ to_utc()

DateTime clan::DateTime::to_utc ( ) const

References DateTime().


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