Day of the week: Difference between revisions
Content added Content deleted
m (→{{header|QL SuperBASIC}}: bit more added) |
|||
Line 684: | Line 684: | ||
==={{header|QL SuperBASIC}}=== |
==={{header|QL SuperBASIC}}=== |
||
<b>Works with:</b> [https://en.wikipedia.org/wiki/Sinclair_QL ''Sinclair QL''] <br> |
<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, 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. |
...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> |
<lang basic> |
||
AUTO 100,10 |
AUTO 100,10 |
||
DEFine |
DEFine PROCedure Iso(S,O) |
||
REM |
REM passing starting & ending years as integers S and O |
||
LOCal y$,m%,d%,i$,n%,w% |
LOCal y$,m%,d%,i$,n%,w% |
||
Line 697: | Line 697: | ||
LET i$=m%*256+ 19300 : n%=i$(2TO 3)+ d% |
LET i$=m%*256+ 19300 : n%=i$(2TO 3)+ d% |
||
REM skipping |
REM skipping irrelevant years below |
||
FOR count=S TO O |
FOR count=S TO O |
||
LET y$=count : w%=(y$(1TO 2)&"32"DIV 16+ count DIV 4+ count+ n%)MOD 7 |
LET y$=count : w%=(y$(1TO 2)&"32"DIV 16+ count DIV 4+ count+ n%)MOD 7 |