
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> > Habe das ganze mal etwas überarbeitet. Ist allerdings kein vollständiges Programm, > > sondern nur die Routine die mit "GOSUB GetSummerTimeBit" angesprungen wird. > > > > #GetSummerTimeBit > > IsSummerTime = OFF > > > > DOW = DOW MOD 7 > > ' um den DOW-Bug auszubügeln > > > > IF (MONTH < 3) THEN RETURN > > 'ab hier ist es März oder später > > IF (MONTH > 10) THEN RETURN > > 'ab hier ist es Oktober oder früher > > > > IF ((MONTH = 3) AND (DAY-DOW<25)) THEN RETURN > > 'ab hier ist es der letzte So im März oder später > > IF ((MONTH = 10) AND (DAY-DOW>25)) THEN RETURN > > 'ab hier ist es der letzte So im Oktober oder früher > > > > IF ((MONTH = 3) AND (DAY-DOW=25) AND (HOUR<3)) THEN RETURN > > 'ab hier ist es der letzte So im März nach 2h oder später > > IF ((MONTH = 10) AND (DAY-DOW=25) AND (HOUR>2)) THEN RETURN > > 'ab hier ist es der letzte So im Oktober vor 2h oder früher > > > > IsSummerTime = ON > > RETURN > > > > In der Sommerzeit wird zwar immer die ganze Routine abgearbeitet, auch wenn man > > die Routine bestimmt früher abbrechen könnte, aber wenn sie nur täglich oder stündlich > > aufgerufen wird ist es ja keine so grosse Rechenzeitverschwendung. Am letzten So im Oktober > > ist die Routine auch nicht ganz genau, aber mitten in der Nacht sollen die Rolladen eh > > nicht aufgehen. > > Befasse mich im Moment ebenfalls mit einer Rolladensteuerung. Wollte die Umschaltung von Sommer- auf Winterzeit mit dieser Routine erledigen. Leider werden nur in einigen Fällen richtige Ergebnisse geliefert. > Der Fehler steckt in diesem Ausdruck: "DAY-DOW<25" Hast Du mal ein Beispiel-Datum, an dem falsch gerechnet wird? Ich habe diese eine Zeile als ein Kriterium übernommen, und mir damals als Kommentar mit reingeschrieben: ' Wenn day -dow < 25, dann sind wir vor der Umstellung, weil der letzte Sonntag mindestens der 25. ist Bye Achim |
| Antwort schreiben |