mirror of
https://github.com/Luzifer/go-holidays.git
synced 2024-10-18 14:14:20 +00:00
Bind to new library version
This commit is contained in:
parent
025b87d81e
commit
cdc8fcf26e
2 changed files with 47 additions and 2 deletions
4
cmd/holiday-api/Godeps/Godeps.json
generated
4
cmd/holiday-api/Godeps/Godeps.json
generated
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/Luzifer/go-holidays/cmd/holiday-api",
|
"ImportPath": "github.com/Luzifer/go-holidays/cmd/holiday-api",
|
||||||
"GoVersion": "go1.7",
|
"GoVersion": "go1.7",
|
||||||
"GodepVersion": "v74",
|
"GodepVersion": "v78",
|
||||||
"Deps": [
|
"Deps": [
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/Luzifer/go-holidays",
|
"ImportPath": "github.com/Luzifer/go-holidays",
|
||||||
"Rev": "ba0fe43284501de6dd5e299ddbfd4c0ae6a54c43"
|
"Rev": "025b87d81e0ce8649eeba2d11c9aa75aaf2e0aa3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/Luzifer/rconfig",
|
"ImportPath": "github.com/Luzifer/rconfig",
|
||||||
|
|
45
cmd/holiday-api/vendor/github.com/Luzifer/go-holidays/holidays_us.go
generated
vendored
Normal file
45
cmd/holiday-api/vendor/github.com/Luzifer/go-holidays/holidays_us.go
generated
vendored
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
package holidays
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
registerHolidayDataSource("us", holidaysUSNational{})
|
||||||
|
}
|
||||||
|
|
||||||
|
type holidaysUSNational struct{}
|
||||||
|
|
||||||
|
func (h holidaysUSNational) GetIncludes() []string { return []string{} }
|
||||||
|
func (h holidaysUSNational) GetHolidays(year int) []Holiday {
|
||||||
|
return []Holiday{
|
||||||
|
newHoliday("New Year's Day", map[string]string{}, h.fixWeekend(dateFromNumbers(year, 1, 1))), // 1st January
|
||||||
|
newHoliday("Birthday of Martin Luther King, Jr.", map[string]string{}, h.findNextWeekday(dateFromNumbers(year, 1, 15), time.Monday)), // Third Monday in January
|
||||||
|
newHoliday("Washington's Birthday", map[string]string{}, h.findNextWeekday(dateFromNumbers(year, 2, 15), time.Monday)), // Third Monday in February
|
||||||
|
newHoliday("Memorial Day", map[string]string{}, h.findNextWeekday(dateFromNumbers(year, 5, 25), time.Monday)), // Last Monday in May
|
||||||
|
newHoliday("Independence Day", map[string]string{}, h.fixWeekend(dateFromNumbers(year, 7, 4))), // 4 July
|
||||||
|
newHoliday("Labor Day", map[string]string{}, h.findNextWeekday(dateFromNumbers(year, 9, 1), time.Monday)), // First Monday in September
|
||||||
|
newHoliday("Columbus Day", map[string]string{}, h.findNextWeekday(dateFromNumbers(year, 10, 8), time.Monday)), // Second Monday in October
|
||||||
|
newHoliday("Veterans Day", map[string]string{}, h.fixWeekend(dateFromNumbers(year, 11, 11))), // 11 November
|
||||||
|
newHoliday("Thanksgiving Day", map[string]string{}, h.findNextWeekday(dateFromNumbers(year, 11, 23), time.Thursday)), // Fourth Thursday in November
|
||||||
|
newHoliday("Christmas Day", map[string]string{}, h.fixWeekend(dateFromNumbers(year, 12, 25))), // 25 December
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h holidaysUSNational) findNextWeekday(in time.Time, wd time.Weekday) time.Time {
|
||||||
|
for in.Weekday() != wd {
|
||||||
|
in = in.Add(1 * 24 * time.Hour)
|
||||||
|
}
|
||||||
|
return in
|
||||||
|
}
|
||||||
|
|
||||||
|
// If a holiday falls on a Saturday it is celebrated the preceding Friday;
|
||||||
|
// if a holiday falls on a Sunday it is celebrated the following Monday.
|
||||||
|
func (h holidaysUSNational) fixWeekend(in time.Time) time.Time {
|
||||||
|
switch in.Weekday() {
|
||||||
|
case time.Saturday:
|
||||||
|
return in.Add(-1 * 24 * time.Hour)
|
||||||
|
case time.Sunday:
|
||||||
|
return in.Add(1 * 24 * time.Hour)
|
||||||
|
default:
|
||||||
|
return in
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue