Browse Source

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.
Adam Johnson 13 years ago
parent
commit
69970aba43
  1. 10
      Sources/Plasma/FeatureLib/pfPython/cyMisc.cpp

10
Sources/Plasma/FeatureLib/pfPython/cyMisc.cpp

@ -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;

Loading…
Cancel
Save