00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __CTIMEZONE_H__
00025 #define __CTIMEZONE_H__
00026
00027 #include <string>
00028
00029 class CTimezone
00030 {
00031 public:
00035 ~CTimezone();
00036
00037 static CTimezone *guessTimeZone(time_t StartStd,
00038 time_t StartDst,
00039 time_t OffsetStd,
00040 time_t OffsetDst,
00041 std::string RuleStd,
00042 std::string RuleDst,
00043 bool haveDst,
00044 int &pErrorCode);
00045
00046 static CTimezone* getByLocation(std::string Location, int &pErrorCode);
00047 static std::string getLocation(int offsetstd, bool dstflag, time_t dstoffset, std::string szDaylight);
00048
00049
00050 const std::string& getLocation() const;
00051 const std::string& getId() const;
00052 time_t getStartStd() const;
00053 time_t getStartDst() const;
00054 time_t getOffsetStd() const;
00055 time_t getOffsetDst() const;
00056 const std::string& getRuleStd() const;
00057 const std::string& getRuleDst() const;
00058 const std::string& getName() const;
00059 bool getHaveDst() const;
00060
00061 protected:
00062
00066 CTimezone();
00067 private:
00068
00069
00070
00071
00072 std::string Location;
00073 std::string Id;
00074 time_t StartStd;
00075 time_t StartDst;
00076 time_t OffsetStd;
00077 time_t OffsetDst;
00078 std::string RuleStd;
00079 std::string RuleDst;
00080 std::string Name;
00081 bool haveDst;
00082
00083 std::string toString();
00084
00085 static CTimezone* createFromSqlQuery(char *pSqlQuery, int &pErrorCode);
00086 static CTimezone* createFromSqlData(char **pSqlData);
00087 };
00088
00089 #endif // ifdef __CTIMEZONE_H__