Date Date::addSeconds(long seconds) { long minutes = (getSs()+seconds)/60; seconds = (getSs()+seconds)%60; Date d = addMinutes(minutes); d.setSs(seconds); return d; }
void Date::updateSeconds(double dseconds) { long seconds = floor(dseconds); double fraction = dseconds - (double)seconds; long minutes = (getSs()+seconds)/60; seconds = (getSs()+seconds)%60; if(minutes>0) { updateMinutes(minutes); } setSs(seconds); nanoseconds = fraction * 1E9; }
void Date::updateMinutes(double dminutes) { long minutes = floor(dminutes); double fraction = dminutes - (double)minutes; long extseconds = fraction*60 + getSs(); minutes += extseconds/60; extseconds = extseconds%60; long hours = (getMm()+minutes)/60; minutes = (getMm()+minutes)%60; if(hours>0) { updateHours(hours); } setMm(minutes); setSs(extseconds); }