3 // $Id: Date_Time.inl 80826 2008-03-04 14:51:23Z wotte $
5 #include "ace/Global_Macros.h"
6 #include "ace/Time_Value.h"
7 #include "ace/OS_NS_sys_time.h"
8 #include "ace/OS_NS_time.h"
10 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
13 ACE_Date_Time::update (const ACE_Time_Value& timevalue)
15 #if defined (ACE_HAS_WINCE)
16 // CE doesn't do localtime().
17 FILETIME file_time = timevalue;
18 FILETIME local_file_time;
20 ::FileTimeToLocalFileTime (&file_time, &local_file_time);
21 ::FileTimeToSystemTime (&local_file_time, &sys_time);
22 this->day_ = sys_time.wDay;
23 this->month_ = sys_time.wMonth;
24 this->year_ = sys_time.wYear;
25 this->hour_ = sys_time.wHour;
26 this->minute_ = sys_time.wMinute;
27 this->second_ = sys_time.wSecond;
28 this->microsec_ = sys_time.wMilliseconds * 1000;
29 this->wday_ = sys_time.wDayOfWeek;
31 time_t time = timevalue.sec ();
33 ACE_OS::localtime_r (&time, &tm_time);
34 this->day_ = tm_time.tm_mday;
35 this->month_ = tm_time.tm_mon + 1; // localtime's months are 0-11
36 this->year_ = tm_time.tm_year + 1900; // localtime reports years since 1900
37 this->hour_ = tm_time.tm_hour;
38 this->minute_ = tm_time.tm_min;
39 this->second_ = tm_time.tm_sec;
40 this->microsec_ = timevalue.usec ();
41 this->wday_ = tm_time.tm_wday;
42 #endif /* ACE_HAS_WINCE */
46 ACE_Date_Time::update (void)
48 ACE_TRACE ("ACE_Date_Time::update");
50 update(ACE_OS::gettimeofday ());
54 ACE_Date_Time::ACE_Date_Time (void)
56 ACE_TRACE ("ACE_Date_Time::ACE_Date_Time");
61 ACE_Date_Time::ACE_Date_Time (const ACE_Time_Value& timevalue)
63 ACE_TRACE ("ACE_Date_Time::ACE_Date_Time: timevalue");
64 this->update (timevalue);
67 // Constructor with init values, no check for validy
69 ACE_Date_Time::ACE_Date_Time (long day,
86 ACE_TRACE ("ACE_Date_Time::ACE_Date_Time");
89 // set/get portions of ACE_Date_Time, no check for validy
93 ACE_Date_Time::day (void) const
95 ACE_TRACE ("ACE_Date_Time::day");
101 ACE_Date_Time::day (long day)
103 ACE_TRACE ("ACE_Date_Time::day");
109 ACE_Date_Time::month (void) const
111 ACE_TRACE ("ACE_Date_Time::month");
117 ACE_Date_Time::month (long month)
119 ACE_TRACE ("ACE_Date_Time::month");
125 ACE_Date_Time::year (void) const
127 ACE_TRACE ("ACE_Date_Time::year");
133 ACE_Date_Time::year (long year)
135 ACE_TRACE ("ACE_Date_Time::year");
141 ACE_Date_Time::hour (void) const
143 ACE_TRACE ("ACE_Date_Time::hour");
149 ACE_Date_Time::hour (long hour)
151 ACE_TRACE ("ACE_Date_Time::hour");
157 ACE_Date_Time::minute (void) const
159 ACE_TRACE ("ACE_Date_Time::minute");
165 ACE_Date_Time::minute (long minute)
167 ACE_TRACE ("ACE_Date_Time::minute");
173 ACE_Date_Time::second (void) const
175 ACE_TRACE ("ACE_Date_Time::second");
181 ACE_Date_Time::second (long second)
183 ACE_TRACE ("ACE_Date_Time::second");
189 ACE_Date_Time::microsec (void) const
191 ACE_TRACE ("ACE_Date_Time::microsec");
197 ACE_Date_Time::microsec (long microsec)
199 ACE_TRACE ("ACE_Date_Time::microsec");
200 microsec_ = microsec;
205 ACE_Date_Time::weekday (void) const
207 ACE_TRACE ("ACE_Date_Time::weekday");
213 ACE_Date_Time::weekday (long wday)
215 ACE_TRACE ("ACE_Date_Time::weekday");
219 ACE_END_VERSIONED_NAMESPACE_DECL