X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Ftime%2Fdatetime.cpp;h=8feeff2f0d21a798f153607ea3f3d02e93b36fd2;hp=d609b2907cc6f1a10f81db862e7154c9d52332bd;hb=967785734be5c3fc6f75da122c2d93ebbb338271;hpb=c0319d7fb558683afdcf523660a40355b6bf0955 diff --git a/source/time/datetime.cpp b/source/time/datetime.cpp index d609b29..8feeff2 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 @@ -150,7 +143,7 @@ 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) @@ -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