(10-01-2018 09:33 PM)Thomas Klemm Wrote: Quote:Moreover, the extrema cycle for 28 days is simply 7+14.n, reducing the number of comparisons from 12 to 8. The period for 23x28 and 28x33 days is also halved to 322 and 462, respectively.
This will take me a bit longer to adjust.
Here's the updated program:
Code:
01▸LBL "NED" ; birthday
02 DATE ; today
03 DDAYS ; n days difference
04 RCL X ; n n
05 322 ; = 23 × 14
06 MOD ; u=n%322 n
07 63 ; (17, 7)
08 X>Y? ; 63 > u ?
09 GTO 00 ; found next U
10 RDN ; u n
11 259 ; (6, 7)
12 X>Y? ; 259 > u ?
13 GTO 00 ; found next U
14 RDN ; u n
15 385 ; = 322 + 63
16▸LBL 00 ; U u n
17 X<>Y ; u U n
18 - ; ∆u n
19 RCL Y ; n ∆u n
20 759 ; = 23 × 33
21 MOD ; v=n%759 ∆u n
22 190 ; (6, 25)
23 X>Y? ; 190 > v ?
24 GTO 00 ; found next V
25 RDN ; v ∆u n
26 305 ; (6, 8)
27 X>Y? ; 305 > v ?
28 GTO 00 ; found next V
29 RDN ; v ∆u n
30 454 ; (17, 25)
31 X>Y? ; 454 > v ?
32 GTO 00 ; found next V
33 RDN ; v ∆u n
34 569 ; (17, 8)
35 X>Y? ; 569 > v ?
36 GTO 00 ; found next V
37 RDN ; v ∆u n
38 949 ; = 759 + 190
39▸LBL 00 ; V v ∆u n
40 X<>Y ; v V ∆u n
41 - ; ∆v ∆u n n
42 X<Y? ; ∆v < ∆u ?
43 X<>Y ; max min n n
44 RDN ; min n n
45 X<>Y ; n min n
46 462 ; = 14 × 33
47 MOD ; w=n%462 min n
48 91 ; (7, 25)
49 X>Y? ; 91 > w ?
50 GTO 00 ; found next W
51 RDN ; w min n
52 371 ; (7, 8)
53 X>Y? ; 371 > w ?
54 GTO 00 ; found next W
55 RDN ; w min n
56 553 ; = 462 + 91
57▸LBL 00 ; W w min n
58 X<>Y ; w W min n
59 - ; ∆w min n n
60 X<Y? ; ∆w < min ?
61 X<>Y ; max min
62 RDN ; min n n
63 + ; m = n + min
64 DATE ; today m n n
65 LASTX ; min today m n
66 DATE+ ; today+min m n n
67 "NED: " ; show next extrema date
68 FIX 6 ;
69 ADATE ;
70 AVIEW ;
71 RDN ; m n
72 23 ; 23 m n
73 XEQ 00 ; show 23
74 28 ; 28 m n
75 XEQ 00 ; show 28
76 33 ; 33 m n
77▸LBL 00 ; show p
78 FIX 0 ;
79 CLA ; ""
80 ARCL X ; "p"
81 ├": " ; "p: "
82 RCL Y ; m p m n
83 X<>Y ; p m m n
84 / ; m/p m n n
85 360 ; 360 m/p m n
86 * ; 360*m/p m n n
87 SIN ; value m n n
88 100 ; 100 value m n
89 * ; %value m n n
90 ARCL X ; "p: %value"
91 FIX 6 ;
92 AVIEW ;
93 RDN ; m n n
94 END ;
Thanks again for your suggestion.
Kind regards
Thomas