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

DateInfo Class Reference

A date info class. More...

List of all members.

Public Types

enum  Day {
  Su = 0, Mo, Tu, We,
  Th, Fr, Sa
}
enum  Month {
  Jan = 0, Feb, Mar, Apr,
  May, Jun, Jul, Aug,
  Sep, Oct, Nov, Dec
}

Public Member Functions

 DateInfo ()
 Today.
 DateInfo (int usryr, int usrmnth, int usrdy)
 DateInfo (int usryr, Month, int usrdy)
 DateInfo (int usryr, const char *mnth, int usrdy)
 DateInfo (const char *)
bool isUdf () const
void setUdf (bool yn=true)
int day () const
Month month () const
int year () const
int usrMonth () const
void setDay (int)
void setMonth (int)
void setMonth (Month)
void setYear (int)
bool operator== (const DateInfo &) const
bool operator!= (const DateInfo &) const
bool operator< (const DateInfo &) const
bool operator<= (const DateInfo &) const
bool operator> (const DateInfo &) const
bool operator>= (const DateInfo &) const
DateInfooperator+= (int)
DateInfooperator-= (int dys)
void addMonths (int)
int weekDay () const
 Sunday => 1.
const char * weekDayName () const
const char * monthName () const
const char * whenRelative (const DateInfo *di=0) const
const char * fullMonthName () const
void toString (BufferString &) const
bool fromString (const char *)
bool fromStdDateString (const char *)
bool fromNumString (const char *, bool yearfirst)
void getUsrDisp (BufferString &, bool withcurtime) const
int key () const
 DateInfo (int the_key)

Static Public Member Functions

static const EnumDefDayDef ()
static const char ** DayNames ()
static bool parseEnumDay (const char *, Day &)
static const char * getDayString (Day)
static const EnumDefMonthDef ()
static const char ** MonthNames ()
static bool parseEnumMonth (const char *, Month &)
static const char * getMonthString (Month)
static const char ** sFullMonths ()
 < Uses "jan", "feb" etc.
static const char * fullMonthName (int)
static const char * fullMonthName (Month)
static int daysInMonth (int yr, Month)
static int daysInYear (int yr)
static Month usrMonth2Month (int)

Static Protected Attributes

static const char * DayNames_ []
static const EnumDef DayDefinition_
static const char * MonthNames_ []
static const EnumDef MonthDefinition_

Private Member Functions

void getDaysMonths (int, int, int &, int &)
void calcDMY ()
void calcDays1900 ()
void getRel (const DateInfo &, BufferString &) const
void getRelToday (BufferString &) const
void addDay (BufferString &) const

Private Attributes

int days1900_
int years_
int months_
int days_

Friends

int operator- (const DateInfo &, const DateInfo &)

Detailed Description

A date info class.

Class does not work before 1900. Non-default constructors are for dates other than today. Constructors accept numbers as in normal usage.

Parsing: toString/fromString format is [n]n-xxx-nnnn, like 14-nov-2008. fromStdDateString() reads the 'file' standard, like 'Wed Nov 14 12:50:15 2008'. fromNumString() reads '2008-11-14' or '14-11-2008' or the same with slashes, dots or colons.

The class has some kewl 'relative' printouts.


Member Enumeration Documentation

Enumerator:
Su 
Mo 
Tu 
We 
Th 
Fr 
Sa 
Enumerator:
Jan 
Feb 
Mar 
Apr 
May 
Jun 
Jul 
Aug 
Sep 
Oct 
Nov 
Dec 

Constructor & Destructor Documentation

DateInfo::DateInfo (  ) 

Today.

DateInfo::DateInfo ( int  usryr,
int  usrmnth,
int  usrdy 
)
DateInfo::DateInfo ( int  usryr,
Month  ,
int  usrdy 
)
DateInfo::DateInfo ( int  usryr,
const char *  mnth,
int  usrdy 
)
DateInfo::DateInfo ( const char *   ) 
DateInfo::DateInfo ( int  the_key  ) 

Member Function Documentation

void DateInfo::addDay ( BufferString  )  const [private]
void DateInfo::addMonths ( int   ) 
void DateInfo::calcDays1900 (  )  [private]
void DateInfo::calcDMY (  )  [private]
int DateInfo::day (  )  const [inline]
static const EnumDef& DateInfo::DayDef (  )  [static]
static const char** DateInfo::DayNames (  )  [static]
static int DateInfo::daysInMonth ( int  yr,
Month   
) [static]
static int DateInfo::daysInYear ( int  yr  )  [inline, static]
bool DateInfo::fromNumString ( const char *  ,
bool  yearfirst 
)
bool DateInfo::fromStdDateString ( const char *   ) 
bool DateInfo::fromString ( const char *   ) 
static const char* DateInfo::fullMonthName ( Month   )  [static]
const char* DateInfo::fullMonthName (  )  const [inline]
static const char* DateInfo::fullMonthName ( int   )  [static]
void DateInfo::getDaysMonths ( int  ,
int  ,
int &  ,
int &   
) [private]
static const char* DateInfo::getDayString ( Day   )  [static]
static const char* DateInfo::getMonthString ( Month   )  [static]
void DateInfo::getRel ( const DateInfo ,
BufferString  
) const [private]
void DateInfo::getRelToday ( BufferString  )  const [private]
void DateInfo::getUsrDisp ( BufferString ,
bool  withcurtime 
) const
bool DateInfo::isUdf (  )  const [inline]
int DateInfo::key (  )  const [inline]
Month DateInfo::month (  )  const [inline]
static const EnumDef& DateInfo::MonthDef (  )  [static]
const char* DateInfo::monthName (  )  const [inline]
static const char** DateInfo::MonthNames (  )  [static]
bool DateInfo::operator!= ( const DateInfo di  )  const [inline]
DateInfo& DateInfo::operator+= ( int   ) 
DateInfo& DateInfo::operator-= ( int  dys  )  [inline]
bool DateInfo::operator< ( const DateInfo di  )  const [inline]
bool DateInfo::operator<= ( const DateInfo di  )  const [inline]
bool DateInfo::operator== ( const DateInfo di  )  const [inline]
bool DateInfo::operator> ( const DateInfo di  )  const [inline]
bool DateInfo::operator>= ( const DateInfo di  )  const [inline]
static bool DateInfo::parseEnumDay ( const char *  ,
Day  
) [static]
static bool DateInfo::parseEnumMonth ( const char *  ,
Month  
) [static]
void DateInfo::setDay ( int   ) 
void DateInfo::setMonth ( int   ) 
void DateInfo::setMonth ( Month   ) 
void DateInfo::setUdf ( bool  yn = true  ) 
void DateInfo::setYear ( int   ) 
static const char** DateInfo::sFullMonths (  )  [static]

< Uses "jan", "feb" etc.

str = sFullMonths()[Month]

void DateInfo::toString ( BufferString  )  const
int DateInfo::usrMonth (  )  const [inline]
static Month DateInfo::usrMonth2Month ( int   )  [static]
int DateInfo::weekDay (  )  const

Sunday => 1.

const char* DateInfo::weekDayName (  )  const
const char* DateInfo::whenRelative ( const DateInfo di = 0  )  const
int DateInfo::year (  )  const [inline]

Friends And Related Function Documentation

int operator- ( const DateInfo di1,
const DateInfo di2 
) [friend]

Member Data Documentation

const EnumDef DateInfo::DayDefinition_ [static, protected]
const char* DateInfo::DayNames_[] [static, protected]
int DateInfo::days1900_ [private]
int DateInfo::days_ [private]
const EnumDef DateInfo::MonthDefinition_ [static, protected]
const char* DateInfo::MonthNames_[] [static, protected]
int DateInfo::months_ [private]
int DateInfo::years_ [private]