Rudiments
|
00001 // Copyright (c) 2000-2002 David Muse 00002 // See the COPYING file for more information. 00003 00004 #ifndef RUDIMENTS_DATETIME_H 00005 #define RUDIMENTS_DATETIME_H 00006 00007 #include <rudiments/private/datetimeincludes.h> 00008 00009 #ifdef RUDIMENTS_NAMESPACE 00010 namespace rudiments { 00011 #endif 00012 00013 class datetimeprivate; 00014 00018 class RUDIMENTS_DLLSPEC datetime { 00019 public: 00020 00027 static char *getString(time_t seconds); 00028 00035 static char *getString(const void *tmstruct); 00036 00043 static time_t getEpoch(const char *datestring); 00044 00051 static time_t getEpoch(const void *tmstruct); 00052 00053 00055 datetime(); 00056 00058 ~datetime(); 00059 00068 bool initialize(const char *tmstring); 00069 00075 bool initialize(time_t seconds); 00076 00088 bool initialize(const void *tmstruct); 00089 00090 00095 bool getSystemDateAndTime(); 00096 00107 bool getHardwareDateAndTime(const char *hwtz); 00108 00116 bool getAdjustedHardwareDateAndTime(const char *hwtz); 00117 00122 bool setSystemDateAndTime(); 00123 00134 bool setHardwareDateAndTime(const char *hwtz); 00135 00136 00139 int32_t getHour() const; 00140 00143 int32_t getMinutes() const; 00144 00147 int32_t getSeconds() const; 00148 00151 int32_t getMonth() const; 00152 00156 const char *getMonthName() const; 00157 00161 const char *getMonthAbbreviation() const; 00162 00166 int32_t getDayOfMonth() const; 00167 00171 int32_t getDayOfWeek() const; 00172 00176 int32_t getDayOfYear() const; 00177 00181 int32_t getYear() const; 00182 00185 bool isDaylightSavingsTime() const; 00186 00188 const char *getTimeZoneString() const; 00189 00191 int32_t getTimeZoneOffset() const; 00192 00203 bool adjustTimeZone(const char *newtz); 00204 00215 bool adjustTimeZone(const char *newtz, bool ignoredst); 00216 00217 00220 bool setSeconds(int32_t seconds); 00221 00224 bool setMinutes(int32_t minutes); 00225 00228 bool setHours(int32_t hours); 00229 00232 bool setDays(int32_t days); 00233 00236 bool setMonths(int32_t months); 00237 00240 bool setYears(int32_t years); 00241 00244 bool addSeconds(int32_t seconds); 00245 00248 bool addMinutes(int32_t minutes); 00249 00252 bool addHours(int32_t hours); 00253 00256 bool addDays(int32_t days); 00257 00260 bool addMonths(int32_t months); 00261 00264 bool addYears(int32_t years); 00265 00266 00273 const char *getString(); 00274 00276 time_t getEpoch() const; 00277 00280 const void *getInternalTimeStructure(); 00281 00282 00285 static const char * const *getTimeZoneAbbreviations(); 00286 00291 static const int32_t *getTimeZoneOffsets(); 00292 00299 static bool validDateTime(const char *string); 00300 00301 00312 static void setTimeMutex(mutex *mtx); 00313 00314 #include <rudiments/private/datetime.h> 00315 }; 00316 00317 #ifdef RUDIMENTS_NAMESPACE 00318 } 00319 #endif 00320 00321 #endif