]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/datetime.cpp
Don't use default "Error" title for wxMessageOutputBest message box.
[wxWidgets.git] / src / common / datetime.cpp
index 3f036e61da28be80f9e2164701ad362ecfb2d5ee..4e0ea0fa695c62d92b6b2255bec838dbc48e6c70 100644 (file)
@@ -281,8 +281,6 @@ static const int SEC_PER_MIN = 60;
 
 static const int MIN_PER_HOUR = 60;
 
-static const int HOURS_PER_DAY = 24;
-
 static const long SECONDS_PER_DAY = 86400l;
 
 static const int DAYS_PER_WEEK = 7;
@@ -510,8 +508,12 @@ wxDateTime::Tm::Tm()
 {
     year = (wxDateTime_t)wxDateTime::Inv_Year;
     mon = wxDateTime::Inv_Month;
-    mday = 0;
-    hour = min = sec = msec = 0;
+    mday =
+    yday = 0;
+    hour =
+    min =
+    sec =
+    msec = 0;
     wday = wxDateTime::Inv_WeekDay;
 }
 
@@ -1614,6 +1616,7 @@ wxDateTime::Tm wxDateTime::GetTm(const TimeZone& tz) const
     // construct Tm from these values
     Tm tm;
     tm.year = (int)year;
+    tm.yday = (wxDateTime_t)(dayOfYear - 1); // use C convention for day number
     tm.mon = (Month)(month - 1); // algorithm yields 1 for January, not 0
     tm.mday = (wxDateTime_t)day;
     tm.msec = (wxDateTime_t)(timeOnly % 1000);
@@ -2349,6 +2352,14 @@ wxDateTime& wxDateTime::SetFromMSWSysTime(const SYSTEMTIME& st)
             st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);
 }
 
+wxDateTime& wxDateTime::SetFromMSWSysDate(const SYSTEMTIME& st)
+{
+    return Set(st.wDay,
+            static_cast<wxDateTime::Month>(wxDateTime::Jan + st.wMonth - 1),
+            st.wYear,
+            0, 0, 0, 0);
+}
+
 void wxDateTime::GetAsMSWSysTime(SYSTEMTIME* st) const
 {
     const wxDateTime::Tm tm(GetTm());
@@ -2363,6 +2374,22 @@ void wxDateTime::GetAsMSWSysTime(SYSTEMTIME* st) const
     st->wSecond = tm.sec;
     st->wMilliseconds = tm.msec;
 }
+
+void wxDateTime::GetAsMSWSysDate(SYSTEMTIME* st) const
+{
+    const wxDateTime::Tm tm(GetTm());
+
+    st->wYear = (WXWORD)tm.year;
+    st->wMonth = (WXWORD)(tm.mon - wxDateTime::Jan + 1);
+    st->wDay = tm.mday;
+
+    st->wDayOfWeek =
+    st->wHour =
+    st->wMinute =
+    st->wSecond =
+    st->wMilliseconds = 0;
+}
+
 #endif // __WXMSW__
 
 #endif // wxUSE_DATETIME