X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=src%2FDate.cc;h=e82ee999edc8dad3c321c7de7cda3d54558ec974;hb=dcc5fd94e2ec65898dd8bda440cb0539e1f60373;hp=8c03c5bd661e6ed7a5c371037ef4e0923b268af2;hpb=8c97cbb9b5f8997fe9ab3917fcbea66d74b45837;p=lib1wire.git diff --git a/src/Date.cc b/src/Date.cc index 8c03c5b..e82ee99 100644 --- a/src/Date.cc +++ b/src/Date.cc @@ -27,7 +27,7 @@ Date::Date() { time(&wtime); ltime = localtime(&wtime); year = 1900 + ltime->tm_year; - month = ltime->tm_mon; + month = ltime->tm_mon + 1; // ltime-month: values 0 - 11... day = ltime->tm_mday; hour = ltime->tm_hour; min = ltime->tm_min; @@ -137,6 +137,60 @@ void Date::tomorrow() { } } +void Date::next_hour() { + if ((hour >= 0) && + (hour <= 24)) { + hour++; + if (hour > 24) { + hour = 0; + tomorrow(); + } + } +} + +void Date::inc_minutes(int minutes) { + int day_c; + int hour_c; + int ii; + + day_c = minutes / 1440; + minutes = minutes - day_c * 1440; + hour_c = minutes / 60; + minutes = minutes - hour_c * 60; + for (ii = 0; ii < day_c; ii++) { + tomorrow(); + } + for (ii = 0; ii < hour_c; ii++) { + hour++; + if (hour > 24) { + hour = 0; + tomorrow(); + } + } + min = min + minutes; + if (min >= 60) { + min = min % 60; + hour++; + if (hour > 24) { + hour = 0; + tomorrow(); + } + } +} + +void Date::inc_seconds(int seconds) { + int min_c; + + min_c = seconds / 60; + seconds = seconds - min_c * 60; + inc_minutes(min_c); + sec = sec + seconds; + if (sec >= 60) { + sec = sec % 60; + inc_minutes(1); + } +} + string Date::to_string() { char buffer[30]; string ret_val;