Date::Date(double year, double month, double date, double hours, double min, double sec, double msec, bool utcFlag) { if (year < 100) { year += 1900; } m_time = MakeDate(MakeDay(year, month, date), MakeTime(hours, min, sec, msec)); if (!utcFlag) { m_time = UTC(m_time); } }
bool MaskedDateReader :: Read( const string & ds, ALib::Date & date ) { ALib::STRPOS s1 = ds.find( mSep[0] ); ALib::STRPOS s2 = ds.find_last_of( mSep[1] ); if ( s1 == std::string::npos || s2 == std::string::npos || s1 >= s2 ) { return false; } string s[3]; s[0] = ds.substr( 0, s1 ); s[1] = ds.substr( s1 + 1, (s2 - s1) - 1 ); s[2] = ds.substr( s2 + 1 ); int day = -1, month = -1, year = -1; for ( unsigned int i = 0; i < 3; i++ ) { switch( mDMY[i] ) { case 'd': MakeDay( s[i], day ); break; case 'm': MakeMonth( s[i], month ); break; case 'y': MakeYear( s[i], year ); break; } } if ( ALib::Date::Validate( year, month, day ) != ALib::Date::DATEOK ) { return false; } date = ALib::Date( year, month, day ); return true; }