2 #include "ace/Global_Macros.h"
3 #include "ace/Time_Value.h"
4 #include "ace/OS_NS_sys_time.h"
5 #include "ace/OS_NS_time.h"
7 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
10 ACE_Date_Time::update (const ACE_Time_Value& timevalue)
12 #if defined (ACE_HAS_WINCE)
13 // CE doesn't do localtime().
14 FILETIME file_time = timevalue;
15 FILETIME local_file_time;
17 ::FileTimeToLocalFileTime (&file_time, &local_file_time);
18 ::FileTimeToSystemTime (&local_file_time, &sys_time);
19 this->day_ = sys_time.wDay;
20 this->month_ = sys_time.wMonth;
21 this->year_ = sys_time.wYear;
22 this->hour_ = sys_time.wHour;
23 this->minute_ = sys_time.wMinute;
24 this->second_ = sys_time.wSecond;
25 this->microsec_ = sys_time.wMilliseconds * 1000;
26 this->wday_ = sys_time.wDayOfWeek;
28 time_t time = timevalue.sec ();
30 ACE_OS::localtime_r (&time, &tm_time);
31 this->day_ = tm_time.tm_mday;
32 this->month_ = tm_time.tm_mon + 1; // localtime's months are 0-11
33 this->year_ = tm_time.tm_year + 1900; // localtime reports years since 1900
34 this->hour_ = tm_time.tm_hour;
35 this->minute_ = tm_time.tm_min;
36 this->second_ = tm_time.tm_sec;
37 this->microsec_ = timevalue.usec ();
38 this->wday_ = tm_time.tm_wday;
39 #endif /* ACE_HAS_WINCE */
43 ACE_Date_Time::update (void)
45 ACE_TRACE ("ACE_Date_Time::update");
47 update(ACE_OS::gettimeofday ());
51 ACE_Date_Time::ACE_Date_Time (void)
53 ACE_TRACE ("ACE_Date_Time::ACE_Date_Time");
58 ACE_Date_Time::ACE_Date_Time (const ACE_Time_Value& timevalue)
60 ACE_TRACE ("ACE_Date_Time::ACE_Date_Time: timevalue");
61 this->update (timevalue);
64 // Constructor with init values, no check for validy
66 ACE_Date_Time::ACE_Date_Time (long day,
83 ACE_TRACE ("ACE_Date_Time::ACE_Date_Time");
86 // set/get portions of ACE_Date_Time, no check for validy
90 ACE_Date_Time::day (void) const
92 ACE_TRACE ("ACE_Date_Time::day");
98 ACE_Date_Time::day (long day)
100 ACE_TRACE ("ACE_Date_Time::day");
106 ACE_Date_Time::month (void) const
108 ACE_TRACE ("ACE_Date_Time::month");
114 ACE_Date_Time::month (long month)
116 ACE_TRACE ("ACE_Date_Time::month");
122 ACE_Date_Time::year (void) const
124 ACE_TRACE ("ACE_Date_Time::year");
130 ACE_Date_Time::year (long year)
132 ACE_TRACE ("ACE_Date_Time::year");
138 ACE_Date_Time::hour (void) const
140 ACE_TRACE ("ACE_Date_Time::hour");
146 ACE_Date_Time::hour (long hour)
148 ACE_TRACE ("ACE_Date_Time::hour");
154 ACE_Date_Time::minute (void) const
156 ACE_TRACE ("ACE_Date_Time::minute");
162 ACE_Date_Time::minute (long minute)
164 ACE_TRACE ("ACE_Date_Time::minute");
170 ACE_Date_Time::second (void) const
172 ACE_TRACE ("ACE_Date_Time::second");
178 ACE_Date_Time::second (long second)
180 ACE_TRACE ("ACE_Date_Time::second");
186 ACE_Date_Time::microsec (void) const
188 ACE_TRACE ("ACE_Date_Time::microsec");
194 ACE_Date_Time::microsec (long microsec)
196 ACE_TRACE ("ACE_Date_Time::microsec");
197 microsec_ = microsec;
202 ACE_Date_Time::weekday (void) const
204 ACE_TRACE ("ACE_Date_Time::weekday");
210 ACE_Date_Time::weekday (long wday)
212 ACE_TRACE ("ACE_Date_Time::weekday");
216 ACE_END_VERSIONED_NAMESPACE_DECL