AceTime  0.3
Date and time classes for Arduino that support timezones from the TZ Database, and a system clock that can synchronize from an NTP server or an RTC chip.
zoned_date_time_mutation.h
1 #ifndef ACE_TIME_ZONED_DATE_TIME_MUTATION_H
2 #define ACE_TIME_ZONED_DATE_TIME_MUTATION_H
3 
4 #include <stdint.h>
5 #include "common/util.h"
6 #include "ZonedDateTime.h"
7 
8 namespace ace_time {
9 namespace zoned_date_time_mutation {
10 
37 inline void incrementYear(ZonedDateTime& dateTime) {
38  int8_t yearTiny = dateTime.yearTiny();
39  common::incrementMod(yearTiny, (int8_t) 100);
40  dateTime.yearTiny(yearTiny);
41 }
42 
44 inline void incrementMonth(ZonedDateTime& dateTime) {
45  uint8_t month = dateTime.month();
46  common::incrementMod(month, (uint8_t) 12, (uint8_t) 1);
47  dateTime.month(month);
48 }
49 
51 inline void incrementDay(ZonedDateTime& dateTime) {
52  uint8_t day = dateTime.day();
53  common::incrementMod(day, (uint8_t) 31, (uint8_t) 1);
54  dateTime.day(day);
55 }
56 
58 inline void incrementHour(ZonedDateTime& dateTime) {
59  uint8_t hour = dateTime.hour();
60  common::incrementMod(hour, (uint8_t) 24);
61  dateTime.hour(hour);
62 }
63 
65 inline void incrementMinute(ZonedDateTime& dateTime) {
66  uint8_t minute = dateTime.minute();
67  common::incrementMod(minute, (uint8_t) 60);
68  dateTime.minute(minute);
69 }
70 
71 }
72 }
73 
74 #endif