Day of the week: Difference between revisions

m
m (→‎{{header|QL SuperBASIC}}: bit more added)
Line 684:
==={{header|QL SuperBASIC}}===
<b>Works with:</b> [https://en.wikipedia.org/wiki/Sinclair_QL ''Sinclair QL''] <br>
...having a structured [https://en.wikipedia.org/wiki/SuperBASIC ''BASIC''] with MOD & DIV and quite unlike the ZX81's "zeroeth-generation" BASIC that's rather like using a calculator which also is without an integer type. Even so, one should still put forth the effort into optimising the code for the task at hand, as done below - which if implemented for the ZX81's routine would make it finish in a fraction of a second, even in slow mode, as multiplying by 13 with a division by 5 is slower than by 256 alone, as well as that two divisions by multiples of 100 are much slower than one by 16 as used in [gopher://sdf.org/0/users/retroburrowers/TemporalRetrology/cc/os ''Lachman's method''] of calculating the day of the week.
 
<lang basic>
AUTO 100,10
DEFine PROCPROCedure Iso(S,O)
REM inputtingpassing starting & ending years as integers S and O
LOCal y$,m%,d%,i$,n%,w%
Line 697:
LET i$=m%*256+ 19300 : n%=i$(2TO 3)+ d%
REM skipping unnecessaryirrelevant years below
FOR count=S TO O
LET y$=count : w%=(y$(1TO 2)&"32"DIV 16+ count DIV 4+ count+ n%)MOD 7