home *** CD-ROM | disk | FTP | other *** search
RISC OS BBC BASIC V Source | 1995-06-20 | 3.0 KB | 117 lines |
- Summertime 1.1 (20-Jun-95)
- Carlos Michael Santill
- Summertime sets the daylight saving time automatic on or off.
- Public Domain, but make sure, that everyone can change
- the program, so do not use an BASIC-compressor or compiler
- Daylight saving time on: last sunday in March
- Daylight saving time off: till 1995 last sunday in September,
- later then 1995 last suntime day in October
- Attention! In UK and Ireland daylight saving time ends 1995 at
- the last sunday in October, so you have to change in line 62
- the year 1996 to 1995.
- blk% 6
- monlen%(12)
- on$ = "'OK' sets the daylight saving time on."
- off$ = "'OK' sets the daylight saving time off."
- *on$ = "'OK' stellt die Sommerzeit an."
- ,off$ = "'OK' stellt die Sommerzeit aus."
- --- Read date ---
- ?blk% = 1
- "OS_Word", 14, blk%
- +yn% =
- (blk%?0 / 16) * 10 + blk%?0
- yn% < 80
- yn% += 100
- yn% += 1900
- +mn% =
- (blk%?1 / 16) * 10 + blk%?1
- +dn% =
- (blk%?2 / 16) * 10 + blk%?2
- --- Length of months ---
- i% = 1
- monlen%(i%)
- yn%
- 4 = 0
- monlen%(2) = 29
- yn%
- 100 = 0
- monlen%(2) = 28
- yn%
- 400 = 0
- monlen%(2) = 29
- -
- --- Number of today since January 1 ---
- nn% =
- daynum(dn%, mn%)
- --- Begin of summertime ---
- last sunday in March
- mb% = 3
- 7"db% = 31 -
- weekday(31, 3) + 1
- nb% =
- daynum(db%, mb%)
- --- End of summertime ---
- last sunday in October since 1996
- last sunday in September till 1995
- for UK and Ireland change the year 1996 to 1995
- yn% >= 1996
- me% = 10
- @% de% = 31 -
- weekday(31, 10) + 1
- me% = 9
- C$ de% = 30 -
- weekday(30, 9) + 1
- ne% =
- daynum(de%, me%)
- --- Check summertime ---
- "OS_Byte", 161, 220
- , , cm%
- (cm%
- 128) = 0
- st% = 0
- st% = -1
- --- Set summertime/wintertime ---
- nn% >= nb%
- nn% < ne%
- st%
- message (on$) = 1
- S-
- "OS_Byte", 162, 220, (cm%
- 128)
- T
- st%
- message (off$) = 1
- Y-
- "OS_Byte", 162, 220, (cm%
- 128)
- Z
- --- End ---
- --- Day since January 1 ---
- daynum(dd%,mm%)
- i%, j%
- j% = 0
- i% = 1
- i% < mm%
- j% += monlen%(i%)
- i% += 1
- = j%+dd%
- --- Day of week (sunday = 1) ---
- weekday(dd%, mm%)
- p; i = (yn% - 1) * 365 + (yn% - 1) / 4 - (yn% - 1) / 100
- q2 i += (yn% - 1) / 400 +
- daynum(dd%, mm%) - 1
- (i + 1)
- 7) + 1
- --- Output message ---
- Returns 1 = OK or 2 = Cancel
- message(msg$)
- blk%, result%
- blk% 256
- blk%!0 = 999
- $(blk%+4) = msg$ +
- "Wimp_ReportError", blk%, 19 ,"Summertime"
- , result%
- = result%
- --- Length of months ---
- 31,28,31,30,31,30,31,31,30,31,30,31
-