aboutsummaryrefslogtreecommitdiff
path: root/src/time.odin
diff options
context:
space:
mode:
Diffstat (limited to 'src/time.odin')
-rw-r--r--src/time.odin30
1 files changed, 18 insertions, 12 deletions
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)