AceTime  0.1
Date and time classes for Arduino that supports the TZ DAtabase, and a system clock synchronized from an NTP server or an RTC chip.
date_time_mutation.h
1 #ifndef ACE_TIME_DATE_TIME_MUTATION_H
2 #define ACE_TIME_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 date_time_mutation {
10 
32 inline void incrementYear(ZonedDateTime& dateTime) {
33  int8_t yearTiny = dateTime.yearTiny();
34  common::incrementMod(yearTiny, (int8_t) 100);
35  dateTime.yearTiny(yearTiny);
36 }
37 
39 inline void incrementMonth(ZonedDateTime& dateTime) {
40  uint8_t month = dateTime.month();
41  common::incrementMod(month, (uint8_t) 12, (uint8_t) 1);
42  dateTime.month(month);
43 }
44 
46 inline void incrementDay(ZonedDateTime& dateTime) {
47  uint8_t day = dateTime.day();
48  common::incrementMod(day, (uint8_t) 31, (uint8_t) 1);
49  dateTime.day(day);
50 }
51 
53 inline void incrementHour(ZonedDateTime& dateTime) {
54  uint8_t hour = dateTime.hour();
55  common::incrementMod(hour, (uint8_t) 24);
56  dateTime.hour(hour);
57 }
58 
60 inline void incrementMinute(ZonedDateTime& dateTime) {
61  uint8_t minute = dateTime.minute();
62  common::incrementMod(minute, (uint8_t) 60);
63  dateTime.minute(minute);
64 }
65 
66 }
67 }
68 
69 #endif