Time.tz.day.index: def of bend-kit-time@0.3.0.0 Import: import bend-kit-time@0.3.0.0/time.bend as Time Lines 1056-1068 of bend-kit-time@0.3.0.0/time.bend: https://jend.leeeet.dev/read.txt?path=bend-kit-time@0.3.0.0/time.bend&start_line=1056&end_line=1068 import Base import bend-kit-int@0.2.0.0/int.bend as Int # The day number of a rule in year y, relative to January 1. def tz.day.index(d: TzDay, +y: U32) -> U32: match d: case Julian{+n}: (n - 1 + Bool.pick(U32, Bool.and(Date.is_leap(y), U32.is_ge(n, 60)), 1, 0) : U32) case Ordinal{n}: n case MonthWeek{+month, +week, +weekday}: +first_day = (Date.weekday(Date{y, month, 1}) % 7 : U32) +day = (1 + ((weekday + 7 - first_day) % 7) + (week - 1) * 7 : U32) +last = Date.days_in_month(y, month) +actual = Bool.pick(U32, U32.is_gt(day, last), (day - 7 : U32), day) Int.I64.to_u32(Int.I64.sub(Date.to_days(Date{y, month, actual}), Date.to_days(Date{y, 1, 1}))) Uses (17): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.pick https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.is_ge https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.is_gt https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.mod https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.mul https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.sub https://jend.leeeet.dev/definition.txt?path=bend-kit-int@0.2.0.0/int.bend&name=I64.sub https://jend.leeeet.dev/definition.txt?path=bend-kit-int@0.2.0.0/int.bend&name=I64.to_u32 https://jend.leeeet.dev/definition.txt?path=bend-kit-time@0.3.0.0/time.bend&name=Date https://jend.leeeet.dev/definition.txt?path=bend-kit-time@0.3.0.0/time.bend&name=Date.days_in_month https://jend.leeeet.dev/definition.txt?path=bend-kit-time@0.3.0.0/time.bend&name=Date.is_leap https://jend.leeeet.dev/definition.txt?path=bend-kit-time@0.3.0.0/time.bend&name=Date.to_days https://jend.leeeet.dev/definition.txt?path=bend-kit-time@0.3.0.0/time.bend&name=Date.weekday https://jend.leeeet.dev/definition.txt?path=bend-kit-time@0.3.0.0/time.bend&name=TzDay