mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-14 02:27:40 -04:00
Fix the George W. Bush bug
Fix the DST hack to use the correct dates in post-2006 US and Canada. I unfortunately could not find a decent cross-platform way to do this.
This commit is contained in:
@ -648,19 +648,19 @@ time_t cyMisc::ConvertGMTtoDni(time_t gtime)
|
|||||||
plUnifiedTime utime = plUnifiedTime();
|
plUnifiedTime utime = plUnifiedTime();
|
||||||
utime.SetSecs(dtime);
|
utime.SetSecs(dtime);
|
||||||
// check for daylight savings time in New Mexico and adjust
|
// check for daylight savings time in New Mexico and adjust
|
||||||
if ( utime.GetMonth() >= 4 && utime.GetMonth() < 11 )
|
if ( utime.GetMonth() >= 3 && utime.GetMonth() < 11 )
|
||||||
{
|
{
|
||||||
plUnifiedTime dstStart = plUnifiedTime();
|
plUnifiedTime dstStart = plUnifiedTime();
|
||||||
dstStart.SetGMTime(utime.GetYear(),4,1,2,0,0);
|
dstStart.SetGMTime(utime.GetYear(),3,7,2,0,0);
|
||||||
// find first Sunday after 4/1 (first sunday of April)
|
// find first Sunday after 3/7 (second Sunday of March)
|
||||||
int days_to_go = 7 - dstStart.GetDayOfWeek();
|
int days_to_go = 7 - dstStart.GetDayOfWeek();
|
||||||
if (days_to_go == 7)
|
if (days_to_go == 7)
|
||||||
days_to_go = 0;
|
days_to_go = 0;
|
||||||
time_t dstStartSecs = dstStart.GetSecs() + days_to_go * kOneDay;
|
time_t dstStartSecs = dstStart.GetSecs() + days_to_go * kOneDay;
|
||||||
|
|
||||||
plUnifiedTime dstEnd = plUnifiedTime();
|
plUnifiedTime dstEnd = plUnifiedTime();
|
||||||
dstEnd.SetGMTime(utime.GetYear(),10,25,1,0,0);
|
dstEnd.SetGMTime(utime.GetYear(),11,1,1,0,0);
|
||||||
// find first sunday after 10/25 (last sunday of Oct.)
|
// find first sunday after 11/1 (first Sunday of November)
|
||||||
days_to_go = 7 - dstEnd.GetDayOfWeek();
|
days_to_go = 7 - dstEnd.GetDayOfWeek();
|
||||||
if (days_to_go == 7)
|
if (days_to_go == 7)
|
||||||
days_to_go = 0;
|
days_to_go = 0;
|
||||||
|
Reference in New Issue
Block a user