DateParser.cpp File Reference

Include dependency graph for DateParser.cpp:

Classes

struct  known_identifier
class  DateMask
struct  parsed_element

Defines

#define PARSEDATE_RELATIVE_TIME   0x0001
#define PARSEDATE_DAY_RELATIVE_TIME   PARSEDATE_RELATIVE_TIME
#define PARSEDATE_MINUTE_RELATIVE_TIME   0x0002
#define PARSEDATE_INVALID_DATE   0x0100
#define TRACE_PARSEDATE   0
#define TRACE(x)   ;
#define FLAG_NONE   0
#define FLAG_RELATIVE   1
#define FLAG_NOT_MODIFIABLE   2
#define FLAG_NOW   4
#define FLAG_NEXT_LAST_THIS   8
#define FLAG_PLUS_MINUS   16
#define FLAG_HAS_DASH   32
#define MAX_ELEMENTS   32

Enumerations

enum  field_type {
  TYPE_UNKNOWN = 0, TYPE_DAY, TYPE_MONTH, TYPE_YEAR,
  TYPE_WEEKDAY, TYPE_HOUR, TYPE_MINUTE, TYPE_SECOND,
  TYPE_TIME_ZONE, TYPE_MERIDIAN, TYPE_DASH, TYPE_DOT,
  TYPE_COMMA, TYPE_COLON, TYPE_UNIT, TYPE_MODIFIER,
  TYPE_END
}
enum  units {
  UNIT_NONE, UNIT_YEAR, UNIT_MONTH, UNIT_DAY,
  UNIT_SECOND
}
enum  value_type { VALUE_NUMERICAL, VALUE_STRING, VALUE_CHAR }
enum  value_modifier {
  MODIFY_MINUS = -2, MODIFY_LAST = -1, MODIFY_NONE = 0, MODIFY_THIS = MODIFY_NONE,
  MODIFY_NEXT = 1, MODIFY_PLUS = 2
}

Functions

time_t parsedate (const char *dateString, time_t now)
time_t parsedate_etc (const char *dateString, time_t now, int *_storedFlags)
void set_dateformats (const char *table[])
const char ** get_dateformats (void)
int preparseDate (const char *dateString, parsed_element *elements)
static void computeRelativeUnit (parsed_element &element, struct tm &tm, int *_flags)
static time_t computeDate (const char *format, bool *optional, parsed_element *elements, time_t now, DateMask dateMask, int *_flags)
void set_dateformats (const char **table)

Variables

static const char *const kFormatsTable []
static const char *const * sFormatsTable = kFormatsTable
static const known_identifier kIdentifiers []


Define Documentation

#define FLAG_HAS_DASH   32

#define FLAG_NEXT_LAST_THIS   8

#define FLAG_NONE   0

#define FLAG_NOT_MODIFIABLE   2

#define FLAG_NOW   4

#define FLAG_PLUS_MINUS   16

#define FLAG_RELATIVE   1

#define MAX_ELEMENTS   32

#define PARSEDATE_DAY_RELATIVE_TIME   PARSEDATE_RELATIVE_TIME

#define PARSEDATE_INVALID_DATE   0x0100

#define PARSEDATE_MINUTE_RELATIVE_TIME   0x0002

#define PARSEDATE_RELATIVE_TIME   0x0001

#define TRACE (  )     ;

#define TRACE_PARSEDATE   0


Enumeration Type Documentation

enum field_type

Enumerator:
TYPE_UNKNOWN 
TYPE_DAY 
TYPE_MONTH 
TYPE_YEAR 
TYPE_WEEKDAY 
TYPE_HOUR 
TYPE_MINUTE 
TYPE_SECOND 
TYPE_TIME_ZONE 
TYPE_MERIDIAN 
TYPE_DASH 
TYPE_DOT 
TYPE_COMMA 
TYPE_COLON 
TYPE_UNIT 
TYPE_MODIFIER 
TYPE_END 

enum units

Enumerator:
UNIT_NONE 
UNIT_YEAR 
UNIT_MONTH 
UNIT_DAY 
UNIT_SECOND 

enum value_modifier

Enumerator:
MODIFY_MINUS 
MODIFY_LAST 
MODIFY_NONE 
MODIFY_THIS 
MODIFY_NEXT 
MODIFY_PLUS 

enum value_type

Enumerator:
VALUE_NUMERICAL 
VALUE_STRING 
VALUE_CHAR 


Function Documentation

static time_t computeDate ( const char *  format,
bool *  optional,
parsed_element elements,
time_t  now,
DateMask  dateMask,
int *  _flags 
) [static]

Uses the format assignment (through "format", and "optional") for the parsed elements and calculates the time value with respect to "now". Will also set the day/minute relative flags in "_flags".

static void computeRelativeUnit ( parsed_element element,
struct tm &  tm,
int *  _flags 
) [static]

const char ** get_dateformats ( void   ) 

time_t parsedate ( const char *  dateString,
time_t  now 
)

time_t parsedate_etc ( const char *  dateString,
time_t  now,
int *  _storedFlags 
)

int preparseDate ( const char *  dateString,
parsed_element elements 
)

void set_dateformats ( const char **  table  ) 

void set_dateformats ( const char *  table[]  ) 


Variable Documentation

const char* const kFormatsTable[] [static]

const known_identifier kIdentifiers[] [static]

const char* const* sFormatsTable = kFormatsTable [static]


Generated on Thu Dec 13 18:13:18 2007 for SkyGI by  doxygen 1.5.1-p1