Example #1
0
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;
}
Example #2
0
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;
}
Example #3
0
void SClock::doAction()
{
	addSecond();
	redraw();
}
Example #4
0
Date & Date::sharpWeek()
{
	sharpDay();
	addSecond((1 - week()) * Time::DAY_SECONDS);
	return *this;
}