⍝ Days since 1899-12-31 00:00:00:
days 1935 1 8 ⍝ Whole number of days.
12791
days 1935 1 8, 12 20 ⍝ Part way through day.
12791.51389
days 1879 3 14 11 30 ⍝ Negative for dates before 1899 12 31.
¯7596.520833
days 2 3⍴1533 8 26, 1536 5 19 ⍝ Matrix of dates → vector of day nos.
¯133796 ¯132799
--/days↑1752 09∘,¨02 14 ⍝ Sept 1752: 2 and 14 contiguous in GB.
1
days↑1700,¨(2 28)(2 29)(3 1) ⍝ 1700 _was_ a leap year in GB.
¯72979 ¯72978 ¯72977
{⍵≡date days ⍵} ⎕ts ⍝ full circle.
1
⍝ Peter Michael's neat one-liners:
n_days←{{¯693896+(⍵>730500)+⌊36524×⍵÷36525}¯60++/⍵[2]↑(⌈365.25⊥⍵[1 3]),31,(29-×4|1⊃⍵),9⍴5⍴31 30}
n_date←{y,m,1+d-(m←m+.≤d)⊃m←+\0 31,(29-×4|1⊃y d←⌊0 365.25⊤694035+⌊(36525×⍵-60.5+0.5××⍵-36584)÷36524),9⍴5⍴31 30}
{⍵≡n_date n_days ⍵} 3↑⎕ts ⍝ full circle.
1
{(n_days¨↓⍵),(days ⍵),⍵}2 3⍴ 2400 2 29 2400 3 1 ⍝ Leap year 2400.
182681 182681 2400 2 29
182681 182682 2400 3 1
eudays←15821004∘days ⍝ European Gregorian calendar reform.
eudays ↑1582 10∘,¨04 15 ⍝ Oct 1582: 4th and 15th contiguous.
¯115860 ¯115859
--/eudays ↑1700∘,¨(2 28)(3 1) ⍝ 1700 was not a leap year in Europe.
1
Alpha ##.test'Dates' ⍝ test for both days and dates.
Back to: code
Back to: Workspaces