X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftime%2Fdatetime.cpp;h=bf824112ac9e202a97d3f0158c42d8bc86d79286;hb=9ef362fabde5092288a8f59e6dae503c83a9462c;hp=d609b2907cc6f1a10f81db862e7154c9d52332bd;hpb=c0319d7fb558683afdcf523660a40355b6bf0955;p=libs%2Fcore.git diff --git a/source/time/datetime.cpp b/source/time/datetime.cpp index d609b29..bf82411 100644 --- a/source/time/datetime.cpp +++ b/source/time/datetime.cpp @@ -1,10 +1,3 @@ -/* $Id$ - -This file is part of libmspcore -Copyright © 2006 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #include #include #include @@ -128,7 +121,7 @@ void DateTime::add_days(int days) } // Fudge factor for leap day - int fudge = (month<=2)?1:0; + int fudge = (month<=2) ? 1 : 0; // (Almost) every 4 year cycle has 1 leap year and 3 normal years unsigned cycles = days/1461; @@ -150,12 +143,12 @@ void DateTime::add_days(int days) new_year += cycles; - if((year-fudge)%4+cycles>=4) + if((year-fudge)%4+cycles>=4 && (new_year%100>=4 || new_year%400<4)) { // We passed a leap year - decrement days if(days==0) { - days = is_leap_year(new_year-fudge)?365:364; + days = is_leap_year(new_year-fudge) ? 365 : 364; --new_year; } else @@ -186,7 +179,7 @@ void DateTime::set_timezone(const TimeZone &tz) void DateTime::convert_timezone(const TimeZone &tz) { - add_raw((zone.get_offset()-tz.get_offset()).raw()); + add_raw((tz.get_offset()-zone.get_offset()).raw()); zone = tz; } @@ -296,7 +289,7 @@ string DateTime::format_rfc3339() const if(const TimeDelta &offs = zone.get_offset()) { int m = abs(static_cast(offs/Time::min)); - result += Msp::format("%c%02d:%02d", (offs