SNAP Library 2.1, User Reference
2013-09-25 10:47:25
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
|
#include <tm.h>
Public Member Functions | |
TSecTm () | |
TSecTm (const uint &_AbsSecs) | |
operator uint () const | |
TSecTm (const TSecTm &SecTm) | |
TSecTm (const int &YearN, const int &MonthN, const int &DayN, const int &HourN=0, const int &MinN=0, const int &SecN=0) | |
TSecTm (const TTm &Tm) | |
TSecTm (const PXmlTok &XmlTok) | |
PXmlTok | GetXmlTok () const |
TSecTm (TSIn &SIn) | |
void | Load (TSIn &SIn) |
void | Save (TSOut &SOut) const |
TSecTm & | operator= (const TSecTm &SecTm) |
TSecTm & | operator= (const uint &_AbsSecs) |
TSecTm & | operator+= (const uint &Secs) |
TSecTm & | operator-= (const uint &Secs) |
bool | operator== (const TSecTm &SecTm) const |
bool | operator< (const TSecTm &SecTm) const |
int | GetMemUsed () const |
int | GetPrimHashCd () const |
int | GetSecHashCd () const |
bool | IsDef () const |
void | Undef () |
TStr | GetStr (const TLoc &Loc=lUs) const |
TStr | GetStr (const TTmUnit &TmUnit) const |
TStr | GetDtStr (const TLoc &Loc=lUs) const |
TStr | GetDtMdyStr () const |
TStr | GetDtYmdStr () const |
TStr | GetYmdTmStr () const |
TStr | GetTmStr () const |
TStr | GetTmMinStr () const |
TStr | GetDtTmSortStr () const |
TStr | GetDtTmSortFNmStr () const |
int | GetYearN () const |
int | GetMonthN () const |
TStr | GetMonthNm (const TLoc &Loc=lUs) const |
int | GetDayN () const |
int | GetDayOfWeekN () const |
TStr | GetDayOfWeekNm (const TLoc &Loc=lUs) const |
int | GetHourN () const |
int | GetMinN () const |
int | GetSecN () const |
void | GetComps (int &Year, int &Month, int &Day, int &Hour, int &Min, int &Sec) const |
uint | GetAbsSecs () const |
TSecTm | Round (const TTmUnit &TmUnit) const |
uint | GetInUnits (const TTmUnit &TmUnit) const |
TStr | GetDayPart () const |
TSecTm & | AddSecs (const int &Secs) |
TSecTm & | SubSecs (const int &Secs) |
TSecTm & | AddMins (const int &Mins) |
TSecTm & | SubMins (const int &Mins) |
TSecTm & | AddHours (const int &Hours) |
TSecTm & | SubHours (const int &Hours) |
TSecTm & | AddDays (const int &Days) |
TSecTm & | SubDays (const int &Days) |
TSecTm & | AddWeeks (const int &Weeks) |
TSecTm & | SubWeeks (const int &Weeks) |
void | SaveTxt (TOLx &Lx) const |
Static Public Member Functions | |
static uint | GetDSecs (const TSecTm &SecTm1, const TSecTm &SecTm2) |
static TSecTm | GetZeroTm () |
static TSecTm | GetZeroWeekTm () |
static TSecTm | GetCurTm () |
static TSecTm | GetCurDtTm () |
static TSecTm | GetDtTmFromHmsStr (const TStr &HmsStr) |
static TSecTm | GetDtTmFromMdyStr (const TStr &MdyStr) |
static TSecTm | GetDtTmFromDmyStr (const TStr &DmyStr) |
static TSecTm | GetDtTmFromMdyHmsPmStr (const TStr &MdyHmsPmStr, const char &DateSepCh='/', const char &TimeSepCh=':') |
static TSecTm | GetDtTmFromYmdHmsStr (const TStr &YmdHmsPmStr, const char &DateSepCh='-', const char &TimeSepCh=':') |
static TSecTm | GetDtTmFromStr (const TChA &YmdHmsPmStr, const int &YearId=0, const int &MonId=1, const int &DayId=2, const int &HourId=3, const int &MinId=4, const int &SecId=5) |
static TSecTm | GetDtTm (const int &YearN, const int &MonthN, const int &DayN) |
static TSecTm | GetDtTm (const TSecTm &Tm) |
static TSecTm | LoadTxt (TILx &Lx) |
Static Private Member Functions | |
static bool | GetTmSec (const int &YearN, const int &MonthN, const int &DayN, const int &HourN, const int &MinN, const int &SecN, uint &AbsSec) |
static bool | GetTmSec (struct tm &Tm, uint &AbsSec) |
static bool | GetTmStruct (const uint &AbsSec, struct tm &Tm) |
static time_t | MkGmTime (struct tm *t) |
Private Attributes | |
TUInt | AbsSecs |
TSecTm::TSecTm | ( | ) | [inline] |
TSecTm::TSecTm | ( | const uint & | _AbsSecs | ) | [inline, explicit] |
TSecTm::TSecTm | ( | const TSecTm & | SecTm | ) | [inline] |
TSecTm::TSecTm | ( | const int & | YearN, |
const int & | MonthN, | ||
const int & | DayN, | ||
const int & | HourN = 0 , |
||
const int & | MinN = 0 , |
||
const int & | SecN = 0 |
||
) |
TSecTm::TSecTm | ( | const TTm & | Tm | ) |
TSecTm::TSecTm | ( | const PXmlTok & | XmlTok | ) | [explicit] |
Definition at line 436 of file tm.cpp.
{ const int Year = XmlTok->GetIntArgVal("Year"); const int Month = XmlTok->GetIntArgVal("Month"); const int Day = XmlTok->GetIntArgVal("Day"); const int Hour = XmlTok->GetIntArgVal("Hour"); const int Min = XmlTok->GetIntArgVal("Min"); const int Sec = XmlTok->GetIntArgVal("Sec"); AbsSecs = TSecTm(Year, Month, Day, Hour, Min, Sec).GetAbsSecs(); }
TSecTm::TSecTm | ( | TSIn & | SIn | ) | [inline] |
TSecTm& TSecTm::AddDays | ( | const int & | Days | ) | [inline] |
TSecTm& TSecTm::AddHours | ( | const int & | Hours | ) | [inline] |
TSecTm& TSecTm::AddMins | ( | const int & | Mins | ) | [inline] |
TSecTm& TSecTm::AddSecs | ( | const int & | Secs | ) | [inline] |
TSecTm& TSecTm::AddWeeks | ( | const int & | Weeks | ) | [inline] |
uint TSecTm::GetAbsSecs | ( | ) | const [inline] |
void TSecTm::GetComps | ( | int & | Year, |
int & | Month, | ||
int & | Day, | ||
int & | Hour, | ||
int & | Min, | ||
int & | Sec | ||
) | const |
static TSecTm TSecTm::GetCurDtTm | ( | ) | [inline, static] |
TSecTm TSecTm::GetCurTm | ( | ) | [static] |
Definition at line 692 of file tm.cpp.
{ const time_t TmSec = time(NULL); struct tm LocTm; uint AbsSec = TUInt::Mx; #if defined(GLib_MSN) localtime_s(&LocTm, &TmSec); #elif defined(GLib_BCB) LocTm = *localtime(&TmSec); #else LocTm = *localtime(&TmSec); #endif IAssert(TSecTm::GetTmSec(LocTm, AbsSec)); return TSecTm(AbsSec); }
int TSecTm::GetDayN | ( | ) | const |
int TSecTm::GetDayOfWeekN | ( | ) | const |
TStr TSecTm::GetDayOfWeekNm | ( | const TLoc & | Loc = lUs | ) | const |
Definition at line 585 of file tm.cpp.
{ struct tm Tm; IAssert(IsDef() && GetTmStruct(AbsSecs(), Tm)); return TTmInfo::GetDayOfWeekNm(Tm.tm_wday+1, Loc); }
TStr TSecTm::GetDayPart | ( | ) | const |
uint TSecTm::GetDSecs | ( | const TSecTm & | SecTm1, |
const TSecTm & | SecTm2 | ||
) | [static] |
TStr TSecTm::GetDtMdyStr | ( | ) | const |
TStr TSecTm::GetDtStr | ( | const TLoc & | Loc = lUs | ) | const |
Definition at line 484 of file tm.cpp.
{ if (IsDef()){ struct tm Tm; IAssert(GetTmStruct(AbsSecs(), Tm)); return TStr::Fmt("%s %s %d %d", TTmInfo::GetDayOfWeekNm(Tm.tm_wday + 1, Loc).CStr(), TTmInfo::GetMonthNm(Tm.tm_mon + 1, Loc).CStr(), Tm.tm_year+1900); } else { return "Undef"; } }
TSecTm TSecTm::GetDtTm | ( | const int & | YearN, |
const int & | MonthN, | ||
const int & | DayN | ||
) | [static] |
TSecTm TSecTm::GetDtTm | ( | const TSecTm & | Tm | ) | [static] |
TSecTm TSecTm::GetDtTmFromDmyStr | ( | const TStr & | DmyStr | ) | [static] |
Definition at line 761 of file tm.cpp.
{ int DmyStrLen=DmyStr.Len(); // day TChA ChA; int ChN=0; while ((ChN<DmyStrLen)&&(DmyStr[ChN]!='/')&&(DmyStr[ChN]!='-')){ ChA+=DmyStr[ChN]; ChN++;} TStr DayStr=ChA; // month ChA.Clr(); ChN++; while ((ChN<DmyStrLen)&&(DmyStr[ChN]!='/')&&(DmyStr[ChN]!='-')){ ChA+=DmyStr[ChN]; ChN++;} TStr MonthStr=ChA; // year ChA.Clr(); ChN++; while (ChN<DmyStrLen){ ChA+=DmyStr[ChN]; ChN++;} TStr YearStr=ChA; // transform to numbers int DayN=DayStr.GetInt(-1); int MonthN=MonthStr.GetInt(-1); int YearN=YearStr.GetInt(-1); if (MonthN == -1){ MonthN = TTmInfo::GetMonthN(MonthStr.ToCap()); } if ((DayN==-1)||(MonthN==-1)||(YearN==-1)){ return TSecTm(); } else { if (YearN<1000){ if (YearN<70){YearN+=2000;} else {YearN+=1900;}} // construct the date return GetDtTm(YearN, MonthN, DayN); } return TSecTm(); }
TSecTm TSecTm::GetDtTmFromHmsStr | ( | const TStr & | HmsStr | ) | [static] |
Definition at line 707 of file tm.cpp.
{ int HmsStrLen=HmsStr.Len(); // hour TChA ChA; int ChN=0; while ((ChN<HmsStrLen)&&(HmsStr[ChN]!=':')){ChA+=HmsStr[ChN]; ChN++;} TStr HourStr=ChA; // minute ChA.Clr(); ChN++; while ((ChN<HmsStrLen)&&(HmsStr[ChN]!=':')){ChA+=HmsStr[ChN]; ChN++;} TStr MinStr=ChA; // second ChA.Clr(); ChN++; while (ChN<HmsStrLen){ChA+=HmsStr[ChN]; ChN++;} TStr SecStr=ChA; // transform to numbers int HourN=HourStr.GetInt(); int MinN=MinStr.GetInt(); int SecN=SecStr.GetInt(); // construct the time TSecTm Tm=TSecTm::GetZeroTm(); Tm.AddHours(HourN); Tm.AddMins(MinN); Tm.AddSecs(SecN); return Tm; }
TSecTm TSecTm::GetDtTmFromMdyHmsPmStr | ( | const TStr & | MdyHmsPmStr, |
const char & | DateSepCh = '/' , |
||
const char & | TimeSepCh = ':' |
||
) | [static] |
Definition at line 795 of file tm.cpp.
{ int MdyHmsPmStrLen=MdyHmsPmStr.Len(); // month TChA ChA; int ChN=0; while ((ChN<MdyHmsPmStrLen)&&(MdyHmsPmStr[ChN]!=DateSepCh)){ ChA+=MdyHmsPmStr[ChN]; ChN++;} TStr MonthStr=ChA; // day ChA.Clr(); ChN++; while ((ChN<MdyHmsPmStrLen)&&(MdyHmsPmStr[ChN]!=DateSepCh)){ ChA+=MdyHmsPmStr[ChN]; ChN++;} TStr DayStr=ChA; // year ChA.Clr(); ChN++; while ((ChN<MdyHmsPmStrLen)&&(MdyHmsPmStr[ChN]!=' ')){ ChA+=MdyHmsPmStr[ChN]; ChN++;} TStr YearStr=ChA; // hour ChA.Clr(); ChN++; while ((ChN<MdyHmsPmStrLen)&&(MdyHmsPmStr[ChN]!=TimeSepCh)){ ChA+=MdyHmsPmStr[ChN]; ChN++;} TStr HourStr=ChA; // minute ChA.Clr(); ChN++; while ((ChN<MdyHmsPmStrLen)&&(MdyHmsPmStr[ChN]!=TimeSepCh)){ ChA+=MdyHmsPmStr[ChN]; ChN++;} TStr MinStr=ChA; // second ChA.Clr(); ChN++; while ((ChN<MdyHmsPmStrLen)&&(MdyHmsPmStr[ChN]!=' ')){ ChA+=MdyHmsPmStr[ChN]; ChN++;} TStr SecStr=ChA; // AM/PM ChA.Clr(); ChN++; while (ChN<MdyHmsPmStrLen){ ChA+=MdyHmsPmStr[ChN]; ChN++;} TStr AmPmStr=ChA; // transform to numbers int MonthN=MonthStr.GetInt(); int DayN=DayStr.GetInt(); int YearN=YearStr.GetInt(); int HourN; int MinN; int SecN; if (HourStr.IsInt()){ HourN=HourStr.GetInt(); MinN=MinStr.GetInt(); SecN=SecStr.GetInt(); if (AmPmStr=="AM"){} else if (AmPmStr=="PM"){HourN+=12;} else {Fail;} } else { HourN=0; MinN=0; SecN=0; } // construct the time TSecTm Tm=TSecTm::GetDtTm(YearN, MonthN, DayN); Tm.AddHours(HourN); Tm.AddMins(MinN); Tm.AddSecs(SecN); return Tm; }
TSecTm TSecTm::GetDtTmFromMdyStr | ( | const TStr & | MdyStr | ) | [static] |
Definition at line 733 of file tm.cpp.
{ int MdyStrLen=MdyStr.Len(); // month TChA ChA; int ChN=0; while ((ChN<MdyStrLen)&&(MdyStr[ChN]!='/')){ ChA+=MdyStr[ChN]; ChN++;} TStr MonthStr=ChA; // day ChA.Clr(); ChN++; while ((ChN<MdyStrLen)&&(MdyStr[ChN]!='/')){ ChA+=MdyStr[ChN]; ChN++;} TStr DayStr=ChA; // year ChA.Clr(); ChN++; while (ChN<MdyStrLen){ ChA+=MdyStr[ChN]; ChN++;} TStr YearStr=ChA; // transform to numbers int MonthN=MonthStr.GetInt(); int DayN=DayStr.GetInt(); int YearN=YearStr.GetInt(); if (YearN<1000){ if (YearN<70){YearN+=2000;} else {YearN+=1900;}} // construct the date return GetDtTm(YearN, MonthN, DayN); }
TSecTm TSecTm::GetDtTmFromStr | ( | const TChA & | YmdHmsPmStr, |
const int & | YearId = 0 , |
||
const int & | MonId = 1 , |
||
const int & | DayId = 2 , |
||
const int & | HourId = 3 , |
||
const int & | MinId = 4 , |
||
const int & | SecId = 5 |
||
) | [static] |
Definition at line 910 of file tm.cpp.
{ TChA Tmp = YmdHmsPmStr; TVec<char *> FldV; // get the sequences of numbers for (char *c = (char *) Tmp.CStr(); *c; c++) { if (TCh::IsNum(*c)) { FldV.Add(c); while (TCh::IsNum(*c)) { c++; } c--; } else { *c = 0; } } const int Y = atoi(FldV[YearId]); const int M = atoi(FldV[MonId]); const int D = atoi(FldV[DayId]); const int H = atoi(FldV[HourId]); const int m = atoi(FldV[MinId]); const int S = atoi(FldV[SecId]); IAssert(Y>0 && M>0 && D>0 && M<13 && D<32); IAssert(H>=0 && H<24 && m>=0 && m<60 && S>=0 && S<60); return TSecTm(Y,M,D,H,m,S); }
TSecTm TSecTm::GetDtTmFromYmdHmsStr | ( | const TStr & | YmdHmsPmStr, |
const char & | DateSepCh = '-' , |
||
const char & | TimeSepCh = ':' |
||
) | [static] |
Definition at line 854 of file tm.cpp.
{ int YmdHmsPmStrLen=YmdHmsPmStr.Len(); // year TChA ChA; int ChN=0; while ((ChN<YmdHmsPmStrLen)&&(YmdHmsPmStr[ChN]!=DateSepCh)){ ChA+=YmdHmsPmStr[ChN]; ChN++;} TStr YearStr=ChA; // month ChA.Clr(); ChN++; while ((ChN<YmdHmsPmStrLen)&&(YmdHmsPmStr[ChN]!=DateSepCh)){ ChA+=YmdHmsPmStr[ChN]; ChN++;} TStr MonthStr=ChA; // day ChA.Clr(); ChN++; while ((ChN<YmdHmsPmStrLen)&&(YmdHmsPmStr[ChN]!=' ')){ ChA+=YmdHmsPmStr[ChN]; ChN++;} TStr DayStr=ChA; // hour ChA.Clr(); ChN++; while ((ChN<YmdHmsPmStrLen)&&(YmdHmsPmStr[ChN]!=TimeSepCh)){ ChA+=YmdHmsPmStr[ChN]; ChN++;} TStr HourStr=ChA; // minute ChA.Clr(); ChN++; while ((ChN<YmdHmsPmStrLen)&&(YmdHmsPmStr[ChN]!=TimeSepCh)){ ChA+=YmdHmsPmStr[ChN]; ChN++;} TStr MinStr=ChA; // second ChA.Clr(); ChN++; while (ChN<YmdHmsPmStrLen){ ChA+=YmdHmsPmStr[ChN]; ChN++;} TStr SecStr=ChA; // transform to numbers int MonthN=MonthStr.GetInt(); int DayN=DayStr.GetInt(); int YearN=YearStr.GetInt(); int HourN; int MinN; int SecN; if (HourStr.IsInt()){ HourN=HourStr.GetInt(); MinN=MinStr.GetInt(); SecN=SecStr.GetInt(); } else { HourN=0; MinN=0; SecN=0; } // construct the time TSecTm Tm=TSecTm::GetDtTm(YearN, MonthN, DayN); Tm.AddHours(HourN); Tm.AddMins(MinN); Tm.AddSecs(SecN); return Tm; }
TStr TSecTm::GetDtTmSortFNmStr | ( | ) | const |
Definition at line 545 of file tm.cpp.
{ return TInt::GetStr(GetYearN(), "%04d")+"-"+ TInt::GetStr(GetMonthN(), "%02d")+"-"+ TInt::GetStr(GetDayN(), "%02d")+"_"+ TInt::GetStr(GetHourN(), "%02d")+"-"+ TInt::GetStr(GetMinN(), "%02d")+"-"+ TInt::GetStr(GetSecN(), "%02d"); }
TStr TSecTm::GetDtTmSortStr | ( | ) | const |
Definition at line 535 of file tm.cpp.
{ return TInt::GetStr(GetYearN(), "%04d")+"/"+ TInt::GetStr(GetMonthN(), "%02d")+"/"+ TInt::GetStr(GetDayN(), "%02d")+" "+ TInt::GetStr(GetHourN(), "%02d")+":"+ TInt::GetStr(GetMinN(), "%02d")+":"+ TInt::GetStr(GetSecN(), "%02d"); }
TStr TSecTm::GetDtYmdStr | ( | ) | const |
int TSecTm::GetHourN | ( | ) | const |
uint TSecTm::GetInUnits | ( | const TTmUnit & | TmUnit | ) | const |
Definition at line 645 of file tm.cpp.
{ static const int DayZero = TJulianDate::GetJulianDateN(1, 1, 1970); if (TmUnit == tmu1Sec) { return AbsSecs; } struct tm Time; IAssert(IsDef() && GetTmStruct(AbsSecs(), Time)); switch (TmUnit) { case tmu1Min : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, Time.tm_hour, Time.tm_min, 0).GetAbsSecs()/60; case tmu10Min : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, Time.tm_hour, 10*(Time.tm_min/10), 0).GetAbsSecs()/(10*60); case tmu15Min : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, Time.tm_hour, 15*(Time.tm_min/15), 0).GetAbsSecs()/(15*60); case tmu30Min : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, Time.tm_hour, 30*(Time.tm_min/30), 0).GetAbsSecs()/(30*60); case tmu1Hour : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, Time.tm_hour, 0, 0).GetAbsSecs()/3600; case tmu2Hour : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, 2*(Time.tm_hour/2), 0, 0).GetAbsSecs()/(2*3600); case tmu4Hour : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, 4*(Time.tm_hour/4), 0, 0).GetAbsSecs()/(4*3600); case tmu6Hour : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, 6*(Time.tm_hour/6), 0, 0).GetAbsSecs()/(6*3600); case tmu12Hour : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, 12*(Time.tm_hour/12), 0, 0).GetAbsSecs()/(12*3600); case tmuDay : return TJulianDate::GetJulianDateN(Time.tm_mday, Time.tm_mon+1, 1900+Time.tm_year) - DayZero; case tmuWeek : return (TJulianDate::GetJulianDateN(Time.tm_mday, Time.tm_mon+1, 1900+Time.tm_year)-DayZero)/7; case tmuMonth : return 12*(Time.tm_year-70)+Time.tm_mon+1; case tmuYear : return Time.tm_year+1900; default : Fail; } return TUInt::Mx; }
int TSecTm::GetMemUsed | ( | ) | const [inline] |
Definition at line 117 of file tm.h.
{return AbsSecs.GetMemUsed();}
int TSecTm::GetMinN | ( | ) | const |
int TSecTm::GetMonthN | ( | ) | const |
TStr TSecTm::GetMonthNm | ( | const TLoc & | Loc = lUs | ) | const |
Definition at line 567 of file tm.cpp.
{ struct tm Tm; IAssert(IsDef() && GetTmStruct(AbsSecs(), Tm)); return TTmInfo::GetMonthNm(Tm.tm_mon+1, Loc); }
int TSecTm::GetPrimHashCd | ( | ) | const [inline] |
Definition at line 119 of file tm.h.
{return AbsSecs.GetPrimHashCd();}
int TSecTm::GetSecHashCd | ( | ) | const [inline] |
Definition at line 120 of file tm.h.
{return AbsSecs.GetSecHashCd();}
int TSecTm::GetSecN | ( | ) | const |
TStr TSecTm::GetStr | ( | const TLoc & | Loc = lUs | ) | const |
Definition at line 457 of file tm.cpp.
{ if (IsDef()) { struct tm Tm; IAssert(GetTmStruct(AbsSecs(), Tm)); // Wed May 14 15:30:17 2003 return TStr::Fmt("%s %s %d %02d:%02d:%02d %d", TTmInfo::GetDayOfWeekNm(Tm.tm_wday + 1, Loc).CStr(), TTmInfo::GetMonthNm(Tm.tm_mon + 1, Loc).CStr(), Tm.tm_mday, Tm.tm_hour, Tm.tm_min, Tm.tm_sec, Tm.tm_year+1900); } else { return "Undef"; } }
TStr TSecTm::GetStr | ( | const TTmUnit & | TmUnit | ) | const |
Definition at line 471 of file tm.cpp.
{ if (TmUnit == tmuYear) { return TInt::GetStr(GetYearN()); } else if (TmUnit == tmuMonth) { return TStr::Fmt("%04d-%02d", GetYearN(), GetMonthN()); } else if (TmUnit == tmuDay) { return TStr::Fmt("%04d-%02d-%02d", GetYearN(), GetMonthN(), GetDayN()); } else { return TStr::Fmt("%04d-%02d-%02d %02d:%02d:%02d", GetYearN(), GetMonthN(), GetDayN(), GetHourN(), GetMinN(), GetSecN()); } }
TStr TSecTm::GetTmMinStr | ( | ) | const |
bool TSecTm::GetTmSec | ( | const int & | YearN, |
const int & | MonthN, | ||
const int & | DayN, | ||
const int & | HourN, | ||
const int & | MinN, | ||
const int & | SecN, | ||
uint & | AbsSec | ||
) | [static, private] |
Definition at line 363 of file tm.cpp.
{ AbsSec = 0; // tm_isdst: // - Positive if daylight saving time is in effect; // - 0 if daylight saving time is not in effect; // - negative if status of daylight saving time is unknown. // The C run-time library assumes the United States's rules for implementing // the calculation of Daylight Saving Time (DST). struct tm Tm; Tm.tm_year=YearN-1900; Tm.tm_mon=MonthN-1; Tm.tm_mday=DayN; Tm.tm_hour=HourN; Tm.tm_min=MinN; Tm.tm_sec=SecN; Tm.tm_wday=1; Tm.tm_yday=1; Tm.tm_isdst=-1; return TSecTm::GetTmSec(Tm, AbsSec); }
bool TSecTm::GetTmSec | ( | struct tm & | Tm, |
uint & | AbsSec | ||
) | [static, private] |
TStr TSecTm::GetTmStr | ( | ) | const |
bool TSecTm::GetTmStruct | ( | const uint & | AbsSec, |
struct tm & | Tm | ||
) | [static, private] |
PXmlTok TSecTm::GetXmlTok | ( | ) | const |
int TSecTm::GetYearN | ( | ) | const |
TStr TSecTm::GetYmdTmStr | ( | ) | const |
static TSecTm TSecTm::GetZeroTm | ( | ) | [inline, static] |
TSecTm TSecTm::GetZeroWeekTm | ( | ) | [static] |
Definition at line 685 of file tm.cpp.
{ TSecTm ZeroWeekTm=GetZeroTm(); while (ZeroWeekTm.GetDayOfWeekN()!=TTmInfo::MonN){ ZeroWeekTm.AddDays(1);} return ZeroWeekTm; }
bool TSecTm::IsDef | ( | ) | const [inline] |
TSecTm TSecTm::LoadTxt | ( | TILx & | Lx | ) | [static] |
time_t TSecTm::MkGmTime | ( | struct tm * | t | ) | [static, private] |
Definition at line 380 of file tm.cpp.
{ static const int m_to_d[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}; short month, year; time_t result; month = t->tm_mon; year = t->tm_year + month / 12 + 1900; month %= 12; if (month < 0) { year -= 1; month += 12; } result = (year - 1970) * 365 + (year - 1969) / 4 + m_to_d[month]; result = (year - 1970) * 365 + m_to_d[month]; if (month <= 1) { year -= 1; } result += (year - 1968) / 4; result -= (year - 1900) / 100; result += (year - 1600) / 400; result += t->tm_mday; result -= 1; result *= 24; result += t->tm_hour; result *= 60; result += t->tm_min; result *= 60; result += t->tm_sec; return result; }
bool TSecTm::operator< | ( | const TSecTm & | SecTm | ) | const [inline] |
bool TSecTm::operator== | ( | const TSecTm & | SecTm | ) | const [inline] |
TSecTm TSecTm::Round | ( | const TTmUnit & | TmUnit | ) | const |
Definition at line 620 of file tm.cpp.
{ if (TmUnit == tmu1Sec) { return *this; } struct tm Time; IAssert(IsDef() && GetTmStruct(AbsSecs(), Time)); switch (TmUnit) { case tmu1Min : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, Time.tm_hour, Time.tm_min, 0); case tmu10Min : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, Time.tm_hour, 10*(Time.tm_min/10), 0); case tmu15Min : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, Time.tm_hour, 15*(Time.tm_min/15), 0); case tmu30Min : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, Time.tm_hour, 30*(Time.tm_min/30), 0); case tmu1Hour : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, Time.tm_hour, 0, 0); case tmu2Hour : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, 2*(Time.tm_hour/2), 0, 0); case tmu4Hour : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, 4*(Time.tm_hour/4), 0, 0); case tmu6Hour : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, 6*(Time.tm_hour/6), 0, 0); case tmu12Hour : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, 12*(Time.tm_hour/12), 0, 0); case tmuDay : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, Time.tm_mday, 0, 0, 0); case tmuMonth : return TSecTm(Time.tm_year+1900, Time.tm_mon+1, 1, 0, 0, 0); case tmuYear : return TSecTm(Time.tm_year+1900, 1, 1, 0, 0, 0); case tmuWeek : { int dd=1, mm=1, yy=1; // week starts on Thursday, since 1.1.1970 is Thursday const int Day = TJulianDate::GetJulianDateN(Time.tm_mday, Time.tm_mon+1, 1900+Time.tm_year); TJulianDate::GetCalendarDate(3+7*(Day/7), dd, mm, yy); return TSecTm(yy, mm, dd, 0, 0, 0); } default : Fail; } return TSecTm(); }
void TSecTm::Save | ( | TSOut & | SOut | ) | const [inline] |
void TSecTm::SaveTxt | ( | TOLx & | Lx | ) | const |
TSecTm& TSecTm::SubDays | ( | const int & | Days | ) | [inline] |
TSecTm& TSecTm::SubHours | ( | const int & | Hours | ) | [inline] |
TSecTm& TSecTm::SubMins | ( | const int & | Mins | ) | [inline] |
TSecTm& TSecTm::SubSecs | ( | const int & | Secs | ) | [inline] |
TSecTm& TSecTm::SubWeeks | ( | const int & | Weeks | ) | [inline] |
void TSecTm::Undef | ( | ) | [inline] |
TUInt TSecTm::AbsSecs [private] |