⍝ ⍵ days later than 1899-12-31 00:00:00: date 12791 ⍝ Whole number of days. 1935 1 8 0 0 0 0 date 12791.51388889 ⍝ Part way through day. 1935 1 8 12 20 0 0 show←timestamp∘'' ⍝ Format ⎕TS vector. show date 1e5÷3 ⍝ Fractional number of days. 1991-04-06 08:00:00 show date ¯7596.520833 ⍝ Negative days before 1899 12 31. 1879-03-14 11:30:00 date 2 2⍴14892 15509 15761 14798 ⍝ (⍴date ⍵) ≡ (⍴⍵),7. 1940 10 9 0 0 0 0 1942 6 18 0 0 0 0 1943 2 25 0 0 0 0 1940 7 7 0 0 0 0 date ¯53799 + 0 1 ⍝ 1752 calendar reform 1752 9 2 0 0 0 0 1752 9 14 0 0 0 0 ⍝ 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 dvec←182680 182681 ⍝ dates around leap-year 2400. date dvec 2400 2 28 0 0 0 0 2400 2 29 0 0 0 0 ↑n_date¨ dvec 2400 2 28 2400 3 1 eudate←¯115860∘date ⍝ European calendar reform: eudate ¯115860+0 1 ⍝ 1582: Oct 4th and 15th contiguous. 1582 10 4 0 0 0 0 1582 10 15 0 0 0 0 Alpha ##.test'Dates' ⍝ test for both days and dates. ⍝∇ date timestamp Back to: code Back to: Workspaces