Rudiments
datetime.h
1 // Copyright (c) 2000-2002 David Muse
2 // See the COPYING file for more information.
3 
4 #ifndef RUDIMENTS_DATETIME_H
5 #define RUDIMENTS_DATETIME_H
6 
7 #include <rudiments/private/datetimeincludes.h>
8 
9 #ifdef RUDIMENTS_NAMESPACE
10 namespace rudiments {
11 #endif
12 
13 class datetimeprivate;
14 
18 class RUDIMENTS_DLLSPEC datetime {
19  public:
20 
27  static char *getString(time_t seconds);
28 
35  static char *getString(const void *tmstruct);
36 
43  static time_t getEpoch(const char *datestring);
44 
51  static time_t getEpoch(const void *tmstruct);
52 
53 
55  datetime();
56 
58  ~datetime();
59 
68  bool initialize(const char *tmstring);
69 
75  bool initialize(time_t seconds);
76 
88  bool initialize(const void *tmstruct);
89 
90 
95  bool getSystemDateAndTime();
96 
107  bool getHardwareDateAndTime(const char *hwtz);
108 
116  bool getAdjustedHardwareDateAndTime(const char *hwtz);
117 
122  bool setSystemDateAndTime();
123 
134  bool setHardwareDateAndTime(const char *hwtz);
135 
136 
139  int32_t getHour() const;
140 
143  int32_t getMinutes() const;
144 
147  int32_t getSeconds() const;
148 
151  int32_t getMonth() const;
152 
156  const char *getMonthName() const;
157 
161  const char *getMonthAbbreviation() const;
162 
166  int32_t getDayOfMonth() const;
167 
171  int32_t getDayOfWeek() const;
172 
176  int32_t getDayOfYear() const;
177 
181  int32_t getYear() const;
182 
185  bool isDaylightSavingsTime() const;
186 
188  const char *getTimeZoneString() const;
189 
191  int32_t getTimeZoneOffset() const;
192 
203  bool adjustTimeZone(const char *newtz);
204 
215  bool adjustTimeZone(const char *newtz, bool ignoredst);
216 
217 
220  bool setSeconds(int32_t seconds);
221 
224  bool setMinutes(int32_t minutes);
225 
228  bool setHours(int32_t hours);
229 
232  bool setDays(int32_t days);
233 
236  bool setMonths(int32_t months);
237 
240  bool setYears(int32_t years);
241 
244  bool addSeconds(int32_t seconds);
245 
248  bool addMinutes(int32_t minutes);
249 
252  bool addHours(int32_t hours);
253 
256  bool addDays(int32_t days);
257 
260  bool addMonths(int32_t months);
261 
264  bool addYears(int32_t years);
265 
266 
273  const char *getString();
274 
276  time_t getEpoch() const;
277 
280  const void *getInternalTimeStructure();
281 
282 
285  static const char * const *getTimeZoneAbbreviations();
286 
291  static const int32_t *getTimeZoneOffsets();
292 
299  static bool validDateTime(const char *string);
300 
301 
312  static void setTimeMutex(mutex *mtx);
313 
314  #include <rudiments/private/datetime.h>
315 };
316 
317 #ifdef RUDIMENTS_NAMESPACE
318 }
319 #endif
320 
321 #endif