30 #include "SimpleTimeParser.h"
36 using std::istringstream;
39 const long SimpleTimeParser::_sSecsInMin = 60L;
40 const long SimpleTimeParser::_sSecsInHour = 60L * SimpleTimeParser::_sSecsInMin;
41 const long SimpleTimeParser::_sSecsInDay = 24L * SimpleTimeParser::_sSecsInHour;
42 const long SimpleTimeParser::_sSecsInWeek = 7L * SimpleTimeParser::_sSecsInDay;
43 const long SimpleTimeParser::_sSecsInMonth = 31L * SimpleTimeParser::_sSecsInDay;
44 const long SimpleTimeParser::_sSecsInYear = 365L * SimpleTimeParser::_sSecsInDay;
46 map<string, long> SimpleTimeParser::_sParseTable = std::map<string, long>();
47 bool SimpleTimeParser::_sInited =
false;
49 SimpleTimeParser::SimpleTimeParser()
53 SimpleTimeParser::~SimpleTimeParser()
79 std::map<std::string, long>::iterator foundIt = _sParseTable.find(units);
80 if (foundIt == _sParseTable.end()) {
84 seconds *= foundIt->second;
95 void SimpleTimeParser::initParseTable()
106 _sParseTable[
"s"] = 1L;
107 _sParseTable[
"sec"] = 1L;
108 _sParseTable[
"secs"] = 1L;
109 _sParseTable[
"second"] = 1L;
110 _sParseTable[
"seconds"] = 1L;
112 _sParseTable[
"m"] = _sSecsInMin;
113 _sParseTable[
"min"] = _sSecsInMin;
114 _sParseTable[
"mins"] = _sSecsInMin;
115 _sParseTable[
"minute"] = _sSecsInMin;
116 _sParseTable[
"minutes"] = _sSecsInMin;
118 _sParseTable[
"h"] = _sSecsInHour;
119 _sParseTable[
"hour"] = _sSecsInHour;
120 _sParseTable[
"hours"] = _sSecsInHour;
122 _sParseTable[
"day"] = _sSecsInDay;
123 _sParseTable[
"days"] = _sSecsInDay;
125 _sParseTable[
"week"] = _sSecsInWeek;
126 _sParseTable[
"weeks"] = _sSecsInWeek;
128 _sParseTable[
"month"] = _sSecsInMonth;
129 _sParseTable[
"months"] = _sSecsInMonth;
131 _sParseTable[
"year"] = _sSecsInYear;
132 _sParseTable[
"years"] = _sSecsInYear;