1 // Code by JeeLabs http://news.jeelabs.org/code/
2 // Released to the public domain! Enjoy!
4 // Simple general-purpose date/time class (no TZ / DST / leap second handling!)
7 DateTime (uint32_t t =0);
8 DateTime (uint16_t year, uint8_t month, uint8_t day,
9 uint8_t hour =0, uint8_t min =0, uint8_t sec =0);
10 DateTime (const char* date, const char* time);
11 uint16_t year() const { return 2000 + yOff; }
12 uint8_t month() const { return m; }
13 uint8_t day() const { return d; }
14 uint8_t hour() const { return hh; }
15 uint8_t minute() const { return mm; }
16 uint8_t second() const { return ss; }
17 uint8_t dayOfWeek() const;
19 // 32-bit times as seconds since 1/1/2000
20 long secondstime() const;
21 // 32-bit times as seconds since 1/1/1970
22 uint32_t unixtime(void) const;
25 uint8_t yOff, m, d, hh, mm, ss;
28 // RTC based on the DS1307 chip connected via I2C and the Wire library
31 static uint8_t begin(void);
32 static void adjust(const DateTime& dt);
33 uint8_t isrunning(void);
34 static DateTime now();
37 // RTC using the internal millis() clock, has to be initialized before use
38 // NOTE: this clock won't be correct once the millis() timer rolls over (>49d?)
41 static void begin(const DateTime& dt) { adjust(dt); }
42 static void adjust(const DateTime& dt);
43 static DateTime now();