-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathleap_years.yasm
90 lines (71 loc) · 1.01 KB
/
leap_years.yasm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#import lib.yasm
#define year :i
@wip:
:o=year%(select_num_p(year%25<1, 16, 4))<1
goto:done++
@l35:
:o=year%(select_num_p(year%25<1, 16, 4))<1
goto:done++
@l36:
:o=year%(select_num_s(year%25>0, 4, 16))<1
goto:done++
@l38:
:o=0^(year%(16-(year%25>0)*12))
goto:done++
@l40:
:o=year%4<1
:o*=year%100
or
year%400<1
goto:done++
@l41:
:o=(year%4<1)*(
year%100
or
year%400<1
)
goto:done++
@l43:
:o=year%4<1
:o*=year%100+(year%400<1)>0
goto:done++
@l47:
:o=not(year%4)and(
year%100
+
not(year%400)
)
goto:done++
@l47:
:o=0^(year%4)*(
(year%100)
+
(year%400<1)
)>0
goto:done++
@l48:
:o=not(year%4)and(
year%100
or
not(year%400)
)
goto:done++
@l64:
x=(year%4or0)*4
+(year%100or0)*2
+(year%400or0)
:o=x<4*(x!=1)
goto:done++
@comments:
!(y%(y%25?4:16))
year%4*(year%100+0^(year%400))
(not a) and (b or (not c))
a b c | o | d
0 0 0 | 1 | 0
0 0 1 | 0 | 1
0 1 0 | 1 | 2
0 1 1 | 1 | 3
1 0 0 | 0 | 4
1 0 1 | 0 | 5
1 1 0 | 0 | 6
1 1 1 | 0 | 7