From 248c0c28aeceed52dcf300b29ec8e36116ac3375 Mon Sep 17 00:00:00 2001 From: San Jacobs Date: Sun, 21 May 2023 17:03:24 +0200 Subject: Tweaks, optimizations, more UI --- src/time.odin | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'src/time.odin') diff --git a/src/time.odin b/src/time.odin index 2161239..700bed7 100644 --- a/src/time.odin +++ b/src/time.odin @@ -161,18 +161,18 @@ new_workday :: proc(previous_wrap : Moment, // Holidays! - if (block.start.day==1) && (block.start.month==1) do upvalue(&block, 2, "New year") - if (block.start.day==1) && (block.start.month==5) do upvalue(&block, 2, "1st of May") - if (block.start.day==17) && (block.start.month==5) do upvalue(&block, 2, "17th of May") - if (block.start.day==25 || block.start.day==26) && block.start.month==12 do upvalue(&block, 2, "Christmas") + if (block.start.day==1) && (block.start.month==1) { upvalue(&block, 2, "New year"); continue} + if (block.start.day==1) && (block.start.month==5) { upvalue(&block, 2, "1st of May"); continue} + if (block.start.day==17) && (block.start.month==5) { upvalue(&block, 2, "17th of May"); continue} + if (block.start.day==25 || block.start.day==26) && block.start.month==12 { upvalue(&block, 2, "Christmas"); continue} easter: Moment = gaussEaster(block.start.year) - if (block.start.day == sub(easter, {0,0,3}).day) && block.start.month == sub(easter, {0,0,3}).month do upvalue(&block, 2, "Maundy Thursday") - if (block.start.day == sub(easter, {0,0,2}).day) && block.start.month == sub(easter, {0,0,2}).month do upvalue(&block, 2, "Good Friday") - if (block.start.day == easter.day) && (block.start.month == easter.month) do upvalue(&block, 2, "Easter") - if (block.start.day == add(easter, {0,0,1}).day) && (block.start.month == add(easter, {0,0,1}).month) do upvalue(&block, 2, "Easter") - if (block.start.day == add(easter, {0,0,39}).day) && (block.start.month == add(easter, {0,0,39}).month) do upvalue(&block, 2, "Feast of the Ascension") - if (block.start.day == add(easter, {0,0,49}).day) && (block.start.month == add(easter, {0,0,49}).month) do upvalue(&block, 2, "Pentecost") - if (block.start.day == add(easter, {0,0,50}).day) && (block.start.month == add(easter, {0,0,50}).month) do upvalue(&block, 2, "Pentecost Monday") + if (block.start.day == sub(easter, {0,0,3}).day) && block.start.month == sub(easter, {0,0,3}).month { upvalue(&block, 2, "Maundy Thursday"); continue} + if (block.start.day == sub(easter, {0,0,2}).day) && block.start.month == sub(easter, {0,0,2}).month { upvalue(&block, 2, "Good Friday"); continue} + if (block.start.day == easter.day) && (block.start.month == easter.month) { upvalue(&block, 2, "Easter"); continue} + if (block.start.day == add(easter, {0,0,1}).day) && (block.start.month == add(easter, {0,0,1}).month) { upvalue(&block, 2, "Easter"); continue} + if (block.start.day == add(easter, {0,0,39}).day) && (block.start.month == add(easter, {0,0,39}).month) { upvalue(&block, 2, "Feast of the Ascension"); continue} + if (block.start.day == add(easter, {0,0,49}).day) && (block.start.month == add(easter, {0,0,49}).month) { upvalue(&block, 2, "Pentecost"); continue} + if (block.start.day == add(easter, {0,0,50}).day) && (block.start.month == add(easter, {0,0,50}).month) { upvalue(&block, 2, "Pentecost Monday"); continue} } for each_block, i in blocks { @@ -413,7 +413,13 @@ lessTimeblock :: proc(block_a: Timeblock, block_b: Timeblock) -> bool { if block_a.start == {0, 0, 0, 0, 0} do return false return bool(sortable(block_a.start) < sortable(block_b.start)) } -less :: proc{lessMoment, lessDelta, lessTimeblock} +lessWorkday :: proc(day_a: Workday, day_b: Workday) -> bool { + return bool(sortable(day_a.call) < sortable(day_b.call)) +} +lessWorkdayPtr :: proc(day_a: ^Workday, day_b: ^Workday) -> bool { + return bool(sortable(day_a.call) < sortable(day_b.call)) +} +less :: proc{lessMoment, lessDelta, lessTimeblock, lessWorkday} lessEqMoment :: proc(moment_a: Moment, moment_b: Moment) -> bool { return moment_a==moment_b || less(moment_a, moment_b) -- cgit v1.2.1