Hallo Forum,
für meine Heizungssteuerung basierend auf Radigs und Robues Software
berechne ich den Wochentag, um z.B. an Wochenenden anders heizen zu
können.
(avr-gcc)
Die Zeit hole ich per ntp. Da erhalte ich die Sekunden (time), die seit
01.01.1900
vergangen sind. Das war ein Montag.
Nun an sich ja ganz einfach:
unsigned int wtag; // Wochentag
wtag = (time/86400)%7;
da ich aber den Sonntag auf 0 haben will und nicht den Montag, müsste
ich eigentlich rechnen:
wtag = (time/86400+6)%7;
Weder das 1. noch das 2. klappt.
Es geht nur so:
wtag = (time/86400+6*86400)%7;
ABER WARUM????? Mir ist nicht klar, warum ich zu den vergangenen Tagen
(time/86400) dann noch so eine riesige Zahl addieren muss, die ja nun
eigentlich die Sekunden für 6 Tage darstellen.
Komischerweise geht es. Hab ich die Variablentypen falsch gewählt?