Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
47
Task/Doomsday-rule/CLU/doomsday-rule.clu
Normal file
47
Task/Doomsday-rule/CLU/doomsday-rule.clu
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
leap_year = proc (year: int) returns (bool)
|
||||
return(year//4=0 & (year//100=0 | year//400=0))
|
||||
end leap_year
|
||||
|
||||
weekday = proc (d: date) returns (string)
|
||||
own leapdoom: array[int] := array[int]$[4,1,7,2,4,6,4,1,5,3,7,5]
|
||||
own normdoom: array[int] := array[int]$[3,7,7,4,2,6,4,1,5,3,7,5]
|
||||
own days: array[string] := array[string]$[0:
|
||||
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
|
||||
"Friday", "Saturday"
|
||||
]
|
||||
|
||||
c: int := d.year/100
|
||||
r: int := d.year//100
|
||||
s: int := r/12
|
||||
t: int := r//12
|
||||
|
||||
c_anchor: int := (5 * (c//4) + 2) // 7
|
||||
doom: int := (s + t + t/4 + c_anchor) // 7
|
||||
anchor: int
|
||||
if leap_year(d.year)
|
||||
then anchor := leapdoom[d.month]
|
||||
else anchor := normdoom[d.month]
|
||||
end
|
||||
return(days[(doom+d.day-anchor+7)//7])
|
||||
end weekday
|
||||
|
||||
start_up = proc ()
|
||||
po: stream := stream$primary_output()
|
||||
dates: array[date] := array[date]$
|
||||
[date$create( 1, 6,1800,0,0,0),
|
||||
date$create(29, 3,1875,0,0,0),
|
||||
date$create( 7,12,1915,0,0,0),
|
||||
date$create(23,12,1970,0,0,0),
|
||||
date$create(14, 5,2043,0,0,0),
|
||||
date$create(12, 2,2077,0,0,0),
|
||||
date$create( 2, 4,2101,0,0,0)]
|
||||
|
||||
for d: date in array[date]$elements(dates) do
|
||||
stream$puts(po, date$unparse_date(d))
|
||||
if d<now()
|
||||
then stream$puts(po, " was on a ")
|
||||
else stream$puts(po, " will be on a ")
|
||||
end
|
||||
stream$putl(po, weekday(d))
|
||||
end
|
||||
end start_up
|
||||
Loading…
Add table
Add a link
Reference in a new issue