/* program 24 to 12h - 9 July 2024 */
void printCR() { Serial.println(""); }
void vlines() {
for (int vl = 6; vl > 0; vl--) {
printCR();
}
}
void report(int i, int hour24, int hours12) {
char buffer[32];
snprintf(buffer, sizeof(buffer), "i = %d, hours12 = %d%d\n", i, hours12 / 10,
hours12 % 10);
Serial.println(buffer);
delay(1200);
}
int hours24g, hours12g, iterg;
void hoursSieve(int fr) {
hours24g = fr;
iterg = fr;
hours12g = -77; // error detection
if (hours24g == 0) {
hours12g = 12;
return;
}
if (hours24g <= 12) {
hours12g = hours24g;
return;
}
hours12g = hours24g - 12;
}
void iterateFactoredMaths() {
for (int fr = 0; fr <= 23; fr++) {
hoursSieve(fr);
report(iterg, hours24g, hours12g);
}
}
void iterateNonTernaryTimeMaths() {
for (int i = 0; i <= 23; i++) {
int hours24 = i;
int hours12;
if (hours24 == 0) {
hours12 = 12;
} else if (hours24 <= 12) {
hours12 = hours24;
} else {
hours12 = hours24 - 12;
}
report(i, hours24, hours12);
}
}
void iterateTimeMaths() {
for (int i = 0; i <= 23; i++) {
int hours24 = i;
int hours12 = hours24 == 0 ? 12 : hours24 <= 12 ? hours24 : hours24 - 12;
report(i, hours24, hours12);
}
}
const int maths = 0; // 0 sieve // 1 nested // 3 ternary
void chosenMaths() {
if (maths == 3) {
vlines();
Serial.println("iterateTimeMaths() ..");
iterateTimeMaths();
return;
}
if (maths == 0) {
vlines();
Serial.println("iterateFactoredMaths() ..");
iterateFactoredMaths();
return;
}
vlines();
Serial.println("iterateNonTernaryTimeMaths() ..");
iterateNonTernaryTimeMaths();
}
void trapped() {
Serial.print(" TRAPPED ");
for (;;)
;
Serial.println("");
Serial.println("NEVER PRINTS");
}
void setupSerial() {
Serial.begin(115200);
delay(500);
while (!Serial)
;
Serial.write('\n');
}
void setup() {
// put your setup code here, to run once:
delay(900);
setupSerial();
chosenMaths();
trapped();
}
void loop() {
// put your main code here, to run repeatedly:
}
/* end */