]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/datetime.cpp
explicit scrollbar style flags needed
[wxWidgets.git] / src / common / datetime.cpp
index b1668f0d270e779ba3504a117aa0e23f5885618d..2b208928df69644e5bb338f75205c87088e60514 100644 (file)
@@ -13,7 +13,7 @@
 //               so long as the above copyright and this permission statement
 //               are retained in all copies.
 //
-// Licence:     wxWidgets licence
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 /*
@@ -1287,6 +1287,17 @@ wxDateTime& wxDateTime::Set(double jdn)
 
     jdn *= MILLISECONDS_PER_DAY;
 
+    // JDNs always suppose an UTC date, so bring it back to local time zone
+    // (also see GetJulianDayNumber() implementation)
+    long tzDiff = GetTimeZone();
+    if ( IsDST() == 1 )
+    {
+        // FIXME: again, we suppose that DST is always one hour
+        tzDiff -= 3600;
+    }
+
+    jdn += tzDiff*1000; // tzDiff is in seconds
+
     m_time.Assign(jdn);
 
     return *this;
@@ -1904,8 +1915,8 @@ wxDateTime& wxDateTime::SetToYearDay(wxDateTime::wxDateTime_t yday)
 
 double wxDateTime::GetJulianDayNumber() const
 {
-    // JDN are always expressed for the GMT dates
-    Tm tm(ToTimezone(GMT0).GetTm(GMT0));
+    // JDN are always expressed for the UTC dates
+    Tm tm(ToTimezone(UTC).GetTm(UTC));
 
     double result = GetTruncatedJDN(tm.mday, tm.mon, tm.year);