-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRTClib.h
52 lines (46 loc) · 1.1 KB
/
RTClib.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Code by JeeLabs http://news.jeelabs.org/code/
// Released to the public domain! Enjoy!
#ifndef RTCLIB_H_
#define RTCLIB_H_
// Simple general-purpose date/time class (no TZ / DST / leap second handling!)
class DateTime {
public:
DateTime(uint32_t t = 0);
DateTime(uint16_t year, uint8_t month, uint8_t day, uint8_t hour = 0, uint8_t min = 0, uint8_t sec = 0);
DateTime(const char* date, const char* time);
uint16_t year() const {
return 2000 + yOff;
}
uint8_t month() const {
return m;
}
uint8_t day() const {
return d;
}
uint8_t hour() const {
return hh;
}
uint8_t minute() const {
return mm;
}
uint8_t second() const {
return ss;
}
uint8_t dayOfWk() const;
// 32-bit times as seconds since 1/1/2000
long secondstime() const;
// 32-bit times as seconds since 1/1/1970
uint32_t unixtime(void) const;
protected:
uint8_t yOff, m, d, hh, mm, ss;
};
// RTC based on the DS1307 chip connected via I2C and the Wire library
class RTC_DS1307 {
public:
uint8_t begin(void);
static void adjust(const DateTime& dt);
uint8_t isrunning(void);
static DateTime now();
bool checkDst();
};
#endif