@@ -59,16 +59,41 @@ void setup() {
59
59
}
60
60
61
61
void loop () {
62
+ // loop2();
63
+ loopOrig ();
64
+ }
65
+
66
+ void loopOrig () {
62
67
present_timestamp = time (nullptr );
63
68
64
69
// convert the system (UNIX) time to a local date and time in a configurable format
65
70
struct tm *now = localtime (&present_timestamp); // break down the timestamp
66
71
67
72
populateTimeStringAsNumbers (now);
68
73
display.showTextScroll (dateTimeString);
74
+ Serial.println (dateTimeString);
75
+
69
76
delay (4000 );
70
77
populateTimeStringAsWords (now);
71
78
display.showTextScroll (dateTimeString);
79
+ Serial.println (dateTimeString);
80
+ }
81
+
82
+ void loop2 () {
83
+ for (int hr = 1 ; hr < 24 ; ++hr) {
84
+ for (int min = 2 ; min < 60 ; min += 7 ) {
85
+ struct tm testNow;
86
+ testNow.tm_hour = hr;
87
+ testNow.tm_min = min;
88
+ populateTimeStringAsNumbers (&testNow);
89
+ Serial.println (dateTimeString);
90
+ display.showTextScroll (dateTimeString);
91
+
92
+ populateTimeStringAsWords (&testNow);
93
+ Serial.println (dateTimeString);
94
+ // display.showTextScroll(dateTimeString);
95
+ }
96
+ }
72
97
}
73
98
74
99
@@ -123,14 +148,9 @@ void populateTimeStringAsWords(struct tm * dt) {
123
148
char temp[BUFFER_SIZE];
124
149
125
150
if (minute >= 58 || minute <= 2 || (minute >= 33 && minute <= 42 )) {
126
- if (hour == 0 || hour == 12 || hour == 24 ) {
127
- // don't show "noon o'clock" or "midnight o'clock"
128
- minuteStr = " " ;
129
- separator = " " ;
130
- } else {
131
- // swap; instead of "O'clock Ten" show "Ten O'clock".
132
- const char *swaptemp; swaptemp = hourStr; hourStr = minuteStr; minuteStr = swaptemp;
133
- }
151
+ // swap; instead of "O'clock Ten" show "Ten O'clock".
152
+ // similarly, 33 through 42 are "hour thirty five" and "hour forty"
153
+ const char *swaptemp; swaptemp = hourStr; hourStr = minuteStr; minuteStr = swaptemp;
134
154
}
135
155
snprintf_P (temp,
136
156
countof (temp),
@@ -170,26 +190,25 @@ const char *getHour(int hour) {
170
190
case 9 : case 21 : return " Nine" ;
171
191
case 10 : case 22 : return " Ten" ;
172
192
case 11 : case 23 : return " Eleven" ;
173
- case 12 : return " Noon" ;
174
- case 0 : case 24 : return " 12" ;
193
+ case 12 : case 0 : case 24 : return " 12" ;
175
194
default : return " " ;
176
195
}
177
196
}
178
197
179
198
const char *getMinute (int minute) {
180
199
switch (minute) {
181
- case 58 : case 59 : case 0 : case 1 : case 2 : return " O'clocK" ;
182
- case 3 : case 4 : case 5 : case 6 : case 7 : return " Five Past" ;
183
- case 8 : case 9 : case 10 : case 11 : case 12 : return " Ten Past" ;
184
- case 13 : case 14 : case 15 : case 16 : case 17 : return " a Quarter Past" ;
185
- case 18 : case 19 : case 20 : case 21 : case 22 : return " 20 Past" ;
186
- case 23 : case 24 : case 25 : case 26 : case 27 : return " 25 Past" ;
187
- case 28 : case 29 : case 30 : case 31 : case 32 : return " Half Past" ;
188
- case 33 : case 34 : case 35 : case 36 : case 37 : return " Thirty five" ;
189
- case 38 : case 39 : case 40 : case 41 : case 42 : return " Forty" ;
190
- case 43 : case 44 : case 45 : case 46 : case 47 : return " a Quarter to" ;
191
- case 48 : case 49 : case 50 : case 51 : case 52 : return " Ten to" ;
192
- case 53 : case 54 : case 55 : case 56 : case 57 : return " Five to" ;
200
+ case 58 : case 59 : case 0 : case 1 : case 2 : return " O'clocK" ; // needs hour before
201
+ case 3 : case 4 : case 5 : case 6 : case 7 : return " Five Past" ; // needs hour afterwards
202
+ case 8 : case 9 : case 10 : case 11 : case 12 : return " Ten Past" ; // needs hour afterwards
203
+ case 13 : case 14 : case 15 : case 16 : case 17 : return " a Quarter Past" ; // needs hour afterwards
204
+ case 18 : case 19 : case 20 : case 21 : case 22 : return " 20 Past" ; // needs hour afterwards
205
+ case 23 : case 24 : case 25 : case 26 : case 27 : return " 25 Past" ; // needs hour afterwards
206
+ case 28 : case 29 : case 30 : case 31 : case 32 : return " Half Past" ; // needs hour afterwards
207
+ case 33 : case 34 : case 35 : case 36 : case 37 : return " Thirty five" ; // needs hour before
208
+ case 38 : case 39 : case 40 : case 41 : case 42 : return " Forty" ; // needs hour before
209
+ case 43 : case 44 : case 45 : case 46 : case 47 : return " a Quarter to" ; // needs hour afterwards
210
+ case 48 : case 49 : case 50 : case 51 : case 52 : return " Ten to" ; // needs hour afterwards
211
+ case 53 : case 54 : case 55 : case 56 : case 57 : return " Five to" ; // needs hour afterwards
193
212
default : return " " ;
194
213
}
195
214
}
0 commit comments