def IsoWeek.from_date.week
import bend-time-lib@0.4.0.1/week.bend as Weekimport Base
import bend-time-lib@0.4.0.1/date.bend as D
10def IsoWeek.from_date.week(
11 +d: D.Date, +year: U32, r: Result<&2, &2, D.Date.Error, D.Date>
12) -> Result<&2, &2, D.Date.Error, IsoWeek>:
13 match r:
14 case Fail{e}:
15 Fail{e}
16 case Done{mon1}:
17 Done{
18 IsoWeek{
19 year,
20 U32.add(
21 1, U32.div(U32.sub(D.Date.to_days(d), D.Date.to_days(mon1)), 7)
22 )
23 }
24 }