diff --git a/ChangeLog.txt b/ChangeLog.txt index 7e63d8faec..e54c262862 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,11 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2015-02-15 20:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * src/common/hbdate.c + ! fixed rounding negative UTC offsets in MS-Windows builds. + It should fix issue #89. + 2015-02-15 20:23 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/rtl/gtwin/gtwin.c * added hack to process characters generated without keydown event. diff --git a/src/common/hbdate.c b/src/common/hbdate.c index c720a9eaef..e427ed4ac4 100644 --- a/src/common/hbdate.c +++ b/src/common/hbdate.c @@ -979,13 +979,15 @@ long hb_timeStampUTCOffset( int iYear, int iMonth, int iDay, lt.wDayOfWeek = 0; if( s_pTzSpecificLocalTimeToSystemTime( NULL, <, &st ) ) - return ( long ) ( ( hb_timeStampPack( lt.wYear, lt.wMonth, lt.wDay, - lt.wHour, lt.wMinute, lt.wSecond, - lt.wMilliseconds ) - - hb_timeStampPack( st.wYear, st.wMonth, st.wDay, - st.wHour, st.wMinute, st.wSecond, - st.wMilliseconds ) ) * HB_SECONDS_PER_DAY + - 0.5 ); + { + double dOffset = ( hb_timeStampPack( lt.wYear, lt.wMonth, lt.wDay, + lt.wHour, lt.wMinute, lt.wSecond, + lt.wMilliseconds ) - + hb_timeStampPack( st.wYear, st.wMonth, st.wDay, + st.wHour, st.wMinute, st.wSecond, + st.wMilliseconds ) ) * HB_SECONDS_PER_DAY; + return ( long ) ( dOffset + ( dOffset < 0 ? -0.5 : 0.5 ) ); + } } return hb_timeUTCOffset();