Time & Time::nextPeriod(Time::PeriodType type, int times) { switch (type) { case kPeriodMinute: addSecond(Time::MINUTE_SECONDS * times); break; case kPeriodHour: addSecond(Time::HOUR_SECONDS * times); break; case kPeriodDay: addSecond(Time::DAY_SECONDS * times); break; case kPeriodWeek: addSecond(Time::WEEK_SECONDS * times); break; case kPeriodMonth: set(toDate().addMonth(times).stamp()); break; case kPeriodYear: set(toDate().addYear(times).stamp()); break; default: break; } return *this; }
int DCF77::scanSignal(void){ unsigned char DCFsignal = digitalRead(DCF77Pin); if (DCFsignal != previousSignalState) { if (DCFsignal == 1) { /* We detected a raising flank, increase per one second! */ addSecond(); #ifdef DCF_DEBUG serialDumpTime(); #endif int thisFlankTime=millis(); if (thisFlankTime - previousFlankTime > DCF_sync_millis) { #ifdef DCF_DEBUG Serial.println("####"); Serial.println("#### Begin of new Minute!!!"); Serial.println("####"); #endif finalizeBuffer(); } previousFlankTime=thisFlankTime; #ifdef DCF_DEBUG Serial.print(previousFlankTime); Serial.print(": DCF77 Signal detected, "); #endif } else { /* or a falling flank */ int difference=millis() - previousFlankTime; #ifdef DCF_DEBUG Serial.print("duration: "); Serial.print(difference); #endif if (difference < DCF_split_millis) { appendSignal(0); } else { appendSignal(1); } } previousSignalState = DCFsignal; } return DCFsignal; }
void SClock::doAction() { addSecond(); redraw(); }
Date & Date::sharpWeek() { sharpDay(); addSecond((1 - week()) * Time::DAY_SECONDS); return *this; }