X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftime%2Fdatetime.cpp;h=c77796f7bc0bd8c8cd378d739fb5a458f006a491;hb=87edba02a23b1338934e36fac407966b25fcf811;hp=d609b2907cc6f1a10f81db862e7154c9d52332bd;hpb=c0319d7fb558683afdcf523660a40355b6bf0955;p=libs%2Fcore.git diff --git a/source/time/datetime.cpp b/source/time/datetime.cpp index d609b29..c77796f 100644 --- a/source/time/datetime.cpp +++ b/source/time/datetime.cpp @@ -1,16 +1,8 @@ -/* $Id$ - -This file is part of libmspcore -Copyright © 2006 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #include #include #include #include "datetime.h" #include "timestamp.h" -#include "units.h" using namespace std; @@ -128,7 +120,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 +142,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 +178,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 +288,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