feat: publish standalone worker
Separate worker packaging and service lifecycle from the control plane.
Этот коммит содержится в:
54
internal/workdays/workdays.go
Обычный файл
54
internal/workdays/workdays.go
Обычный файл
@@ -0,0 +1,54 @@
|
||||
// Package workdays provides functionality.
|
||||
package workdays
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/rickar/cal/v2"
|
||||
)
|
||||
|
||||
// NewHoliday provides functionality.
|
||||
func NewHoliday(month time.Month, day int) *cal.Holiday {
|
||||
return &cal.Holiday{
|
||||
Name: month.String() + " " + strconv.Itoa(day),
|
||||
Month: month,
|
||||
Day: day,
|
||||
Func: cal.CalcDayOfMonth,
|
||||
}
|
||||
}
|
||||
|
||||
// GetCalendar provides functionality.
|
||||
func GetCalendar() *cal.BusinessCalendar {
|
||||
c := cal.NewBusinessCalendar()
|
||||
|
||||
// add holidays for the business
|
||||
c.AddHoliday(
|
||||
NewHoliday(time.January, 1),
|
||||
NewHoliday(time.January, 2),
|
||||
NewHoliday(time.January, 3),
|
||||
NewHoliday(time.January, 4),
|
||||
NewHoliday(time.January, 5),
|
||||
NewHoliday(time.January, 6),
|
||||
NewHoliday(time.January, 7),
|
||||
NewHoliday(time.January, 8),
|
||||
NewHoliday(time.February, 23),
|
||||
NewHoliday(time.March, 8),
|
||||
NewHoliday(time.May, 1),
|
||||
NewHoliday(time.May, 9),
|
||||
NewHoliday(time.June, 12),
|
||||
NewHoliday(time.November, 4),
|
||||
NewHoliday(time.December, 30),
|
||||
NewHoliday(time.December, 31),
|
||||
)
|
||||
|
||||
// optionally change the holiday calculation behavior
|
||||
// (the default is US-style where weekend holidays are
|
||||
// observed on the closest weekday)
|
||||
// c.Observed = cal.ObservedExact
|
||||
|
||||
c.SetWorkday(time.Saturday, true)
|
||||
c.SetWorkday(time.Sunday, true)
|
||||
|
||||
return c
|
||||
}
|
||||
Ссылка в новой задаче
Block a user