blob: 995ee3ca638641d95d2d28dfd357b545fcd22a0d (
plain)
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
|
⟨
To, From
⟩⇐
DivMod ← ⌊∘÷˜ ⋈ |
# Day number versus calendar date conversions
date ← {
o ← 719469
y ← 365.25
dur ← ⟨(100×y)-0.75, y, 30.6⟩
off ← ⟨o-0.25, 0.75, 0.41⟩
From ⇐ {
y‿m‿d ← 𝕩
f ← 0 > m -↩ 3
(d-o) +´ ⌊ off +⌾(¯1⊸⊑) dur × (100 DivMod y-f) ∾ ⟨m+12×f⟩
}
To ⇐ {
t←𝕩
c‿y‿m ← dur { d‿m ← 𝕨 DivMod 𝕩+t ⋄ t↩⌊m ⋄ d }¨ off
m -↩ 12×10≤m
⟨(100×c)+y+m<0, 3+m, 1+t⟩
}
}
timestamp ← {
d ← 24 × ×˜ m←60
From ⇐ {
(d × date.From 3↑𝕩) + m⊸×⊸+˜´⌽3↓𝕩
}
To ⇐ {
day‿sec ← d DivMod 𝕩
(date.To day) ∾ m|⌊∘÷⟜m⍟(⌽↕3)sec
}
}
To‿From ← timestamp.To‿timestamp.From
|