minute(0),
second(0),
usec(0)
-{ }
+{
+ validate();
+}
DateTime::DateTime(int32_t y, uint8_t m, uint8_t d, uint8_t h, uint8_t n, uint8_t s):
year(y),
minute(n),
second(s),
usec(0)
-{ }
+{
+ validate();
+}
DateTime::DateTime(int32_t y, uint8_t m, uint8_t d, uint8_t h, uint8_t n, uint8_t s, uint32_t u):
year(y),
minute(n),
second(s),
usec(u)
-{ }
+{
+ validate();
+}
void DateTime::add_days(int32_t days)
{
}
}
+void DateTime::validate() const
+{
+ if(usec>=1000000)
+ throw InvalidParameterValue("Microseconds out of range");
+ if(second>=60)
+ throw InvalidParameterValue("Seconds out of range");
+ if(minute>=60)
+ throw InvalidParameterValue("Minutes out of range");
+ if(hour>=24)
+ throw InvalidParameterValue("Hours out of range");
+ if(month<1 || month>12)
+ throw InvalidParameterValue("Month out of range");
+ if(mday<1 || mday>month_days(year, month))
+ throw InvalidParameterValue("Day of month out of range");
+}
+
} // namespace Time
} // namespace Msp