Ich probiere aus der aktuellen Zeit und Datum herauszufinden, ob ich mich im Sommerzeitrahmen befinde.
Der compiler meckert und ich komme nicht drauf, wo mein Fehler steckt.
Alles anzeigen
bemeckert wird Zeile 128 und 135
Error : 63 Line : 128 Integer or Long expected for ABS() , in File : G:\Bascom\Sommerzeitprüfung\Sommerzeitprüfung.bas
Error : 63 Line : 135 Integer or Long expected for ABS() , in File : G:\Bascom\Sommerzeitprüfung\Sommerzeitprüfung.bas
Der compiler meckert und ich komme nicht drauf, wo mein Fehler steckt.
BASCOM-Quellcode
- '(
- Die Regeln für die Zeitumstellung
- Für die Sommerzeit gilt:
- Die Zeitumstellung findet am letzten Sonntag im März statt.
- Dabei wird um 2:00 Uhr die Uhr um eine Stunde vorgestellt.
- Das bedeutet : "Die Nacht ist eine Stunde kürzer".
- Für die Winterzeit (Normalzeit) gilt:
- Die Zeitumstellung findet am letzten Sonntag im Oktober statt.
- Um 3:00 Uhr wird die Uhr um eine Stunde zurückgestellt.
- Das bedeutet : "Die Nacht ist eine Stunde länger".
- ')
- $regfile = "m328pdef.dat"
- $crystal = 16000000
- $hwstack = 34
- $swstack = 32
- $framesize = 64
- $baud = 9600
- Config Clock = User
- Config Date = Dmy , Separator = .
- Dim Sec_szbeginn As Long 'syssec der Zeitumstellung auf Sommerzeit im Beispieljahr
- Dim Sec_szende As Long 'syssec der Zeitumstellung auf Winterzeit im Beispieljahr
- Dim W_t_2503 As Byte 'Wochentag vom 25.März
- Dim W_t_2510 As Byte 'Wochentag vom 25.Oktober
- Dim Datum_2503 As String * 8
- Dim Datum_letzter_sonntag As String * 8
- Dim Tage_bis_sonntag As Byte
- Dim Letzter_sonntag As Byte
- Const Zeit_beginn = "02:00:00" 'MEZ
- Const Zeit_ende = "03:00:00" 'MESZ
- Dim Systemsekunde As Long
- _year = 19 'Beispiel 2019
- _month = 03
- _day = 30
- _hour = 03 'MEZ
- _min = 00
- _sec = 00
- Systemsekunde = Syssec()
- Time$ = Time(systemsekunde)
- Print Time$ ; " ";
- Gosub Abgrenzung_sommerzeit
- If Systemsekunde >= sec_szbeginn Then Systemsekunde = Systemsekunde + 3600
- If Systemsekunde >= sec_szende Then Systemsekunde = Systemsekunde - 3600
- Time$ = Time(systemsekunde)
- Print Time$
- _year = 19 'Beispiel 2019
- _month = 03
- _day = 30
- _hour = 03 'MEZ
- _min = 00
- _sec = 00
- Systemsekunde = Syssec()
- Time$ = Time(systemsekunde)
- Print Time$ ; " ";
- Gosub Abgrenzung_sommerzeit
- If Systemsekunde >= sec_szbeginn Then Systemsekunde = Systemsekunde + 3600
- If Systemsekunde >= sec_szende Then Systemsekunde = Systemsekunde - 3600
- Time$ = Time(systemsekunde)
- Print Time$
- _year = 19 'Beispiel 2019
- _month = 03
- _day = 31
- _hour = 02 'MEZ
- _min = 00
- _sec = 00
- Systemsekunde = Syssec()
- Time$ = Time(systemsekunde)
- Print Time$ ; " ";
- Gosub Abgrenzung_sommerzeit
- If Systemsekunde >= sec_szbeginn Then Systemsekunde = Systemsekunde + 3600
- If Systemsekunde >= sec_szende Then Systemsekunde = Systemsekunde - 3600
- Time$ = Time(systemsekunde)
- Print Time$
- _year = 19 'Beispiel 2019
- _month = 10
- _day = 27
- _hour = 02 'MESZ
- _min = 00
- _sec = 00
- Systemsekunde = Syssec()
- Time$ = Time(systemsekunde)
- Print Time$ ; " ";
- Gosub Abgrenzung_sommerzeit
- If Systemsekunde >= sec_szbeginn Then Systemsekunde = Systemsekunde + 3600
- If Systemsekunde >= sec_szende Then Systemsekunde = Systemsekunde - 3600
- Time$ = Time(systemsekunde)
- Print Time$
- _year = 19 'Beispiel 2019
- _month = 10
- _day = 27
- _hour = 03 'MESZ
- _min = 00
- _sec = 00
- Systemsekunde = Syssec()
- Time$ = Time(systemsekunde)
- Print Time$ ; " ";
- Gosub Abgrenzung_sommerzeit
- If Systemsekunde >= sec_szbeginn Then Systemsekunde = Systemsekunde + 3600
- If Systemsekunde >= sec_szende Then Systemsekunde = Systemsekunde - 3600
- Time$ = Time(systemsekunde)
- Print Time$
- End
- Abgrenzung_sommerzeit:
- Datum_2503 = "25.03" + Str(_year)
- W_t_2503 = Dayofweek(datum_2503) 'ergibt Wochentag des 25.März im Beispieljahr
- Tage_bis_sonntag = 6 - W_t_2503
- Letzter_sonntag = 25 + Tage_bis_sonntag 'letzter Sonntag im März des Beispieljahres
- Datum_letzter_sonntag = Str(letzter_sonntag) + "."
- Datum_letzter_sonntag = Datum_letzter_sonntag + "03."
- Datum_letzter_sonntag = Datum_letzter_sonntag + Str(_year)
- Sec_szbeginn = Syssec(zeit_beginn , Datum_letzter_sonntag) 'ab dieser Sekunde MEZ beginnt die Sommerzeit im Beispieljahr
- W_t_2510 = W_t_2503 + 4 : If W_t_2510 > 6 Then W_t_2510 = W_t_2510 -7 'ergibt Wochentag des 25.Oktober im Beispieljahr
- Tage_bis_sonntag = 6 - W_t_2510
- Letzter_sonntag = 25 + Tage_bis_sonntag 'letzter Sonntag im Oktober des Beispieljahres
- Datum_letzter_sonntag = Str(letzter_sonntag) + "."
- Datum_letzter_sonntag = Datum_letzter_sonntag + "10."
- Datum_letzter_sonntag = Datum_letzter_sonntag + Str(_year)
- Sec_szende = Syssec(zeit_ende , Datum_letzter_sonntag) 'ab dieser Sekunde MESZ endet die Sommerzeit im Beispieljahr
- Return
Error : 63 Line : 128 Integer or Long expected for ABS() , in File : G:\Bascom\Sommerzeitprüfung\Sommerzeitprüfung.bas
Error : 63 Line : 135 Integer or Long expected for ABS() , in File : G:\Bascom\Sommerzeitprüfung\Sommerzeitprüfung.bas
Raum für Notizen
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------