Documentation
¶
Overview ¶
Package cal provides extensions to the time package for handling holidays and work days (business days).
Work days are defined as Monday through Friday on dates that are not holidays or the alternate observation dates for holidays.
As in the time package, all calculations assume a Gregorian calendar.
Index ¶
- Variables
- func AddAustralianHolidays(c *Calendar)
- func AddAustrianHolidays(c *Calendar)
- func AddBelgiumHolidays(c *Calendar)
- func AddBritishHolidays(c *Calendar)
- func AddCanadianHolidays(c *Calendar)
- func AddCzechHolidays(c *Calendar)
- func AddDanishHolidays(c *Calendar)
- func AddDanishTraditions(c *Calendar)
- func AddDutchHolidays(c *Calendar)
- func AddEcbHolidays(c *Calendar)
- func AddFranceHolidays(c *Calendar)
- func AddGermanHolidays(c *Calendar)
- func AddGermanyStateHolidays(c *Calendar, state string)
- func AddItalianHolidays(c *Calendar)
- func AddNewZealandHoliday(c *Calendar)
- func AddNorwegianHalfDays(c *Calendar)
- func AddNorwegianHolidays(c *Calendar)
- func AddPolandHolidays(c *Calendar)
- func AddSlovakHolidays(c *Calendar)
- func AddSouthAfricanHolidays(cal *Calendar)
- func AddSpainHolidays(c *Calendar)
- func AddSwedishHolidays(c *Calendar)
- func AddUkraineHolidays(c *Calendar)
- func AddUsHolidays(cal *Calendar)
- func IsWeekdayN(date time.Time, day time.Weekday, n int) bool
- func IsWeekend(date time.Time) bool
- func JulianDate(t time.Time) float32
- func JulianDayNumber(t time.Time) int
- func MonthEnd(t time.Time) time.Time
- func MonthStart(t time.Time) time.Time
- type Calendar
- func (c *Calendar) AddHoliday(h ...Holiday)
- func (c *Calendar) AddSkipNonWorkdays(start time.Time, d time.Duration) time.Time
- func (c *Calendar) AddWorkHours(t time.Time, worked time.Duration) time.Time
- func (c *Calendar) CountHolidayHoursWithOffset(start time.Time, offsetHour int) int
- func (c *Calendar) CountWorkHours(start, end time.Time) time.Duration
- func (c *Calendar) CountWorkdays(start, end time.Time) int64
- func (c *Calendar) DailyWorkedTime() time.Duration
- func (c *Calendar) EndWorkTime(t time.Time) time.Time
- func (c *Calendar) IsHoliday(date time.Time) bool
- func (c *Calendar) IsWorkday(date time.Time) bool
- func (c *Calendar) NextWorkStart(t time.Time) time.Time
- func (c *Calendar) SetWorkday(day time.Weekday, workday bool)
- func (c *Calendar) SetWorkingHours(start time.Duration, end time.Duration)
- func (c *Calendar) StartWorkTime(t time.Time) time.Time
- func (c *Calendar) SubSkipNonWorkdays(start time.Time, d time.Duration) time.Time
- func (c *Calendar) WorkdayN(year int, month time.Month, n int) int
- func (c *Calendar) Workdays(year int, month time.Month) int
- func (c *Calendar) WorkdaysFrom(start time.Time, offset int) time.Time
- func (c *Calendar) WorkdaysRemain(date time.Time) int
- type Holiday
- type HolidayFn
- type ObservedRule
- type WorkdayFn
Constants ¶
This section is empty.
Variables ¶
var ( NewYear = NewHoliday(time.January, 1) GoodFriday = NewHolidayFunc(calculateGoodFriday) EasterMonday = NewHolidayFunc(calculateEasterMonday) Christmas = NewHoliday(time.December, 25) Christmas2 = NewHoliday(time.December, 26) )
Common holidays
var ( ATNeujahr = NewYear ATHeiligeDreiKoenige = NewHoliday(time.January, 6) ATOstermontag = EasterMonday ATTagderArbeit = NewHoliday(time.May, 1) ATChristiHimmelfahrt = NewHolidayFunc(calculateHimmelfahrt) ATPfingstmontag = NewHolidayFunc(calculatePfingstMontag) ATFronleichnam = NewHolidayFunc(calculateFronleichnam) ATMariaHimmelfahrt = NewHoliday(time.August, 15) ATNationalfeiertag = NewHoliday(time.October, 26) ATAllerheiligen = NewHoliday(time.November, 1) ATMariaEmpfaengnis = NewHoliday(time.December, 8) ATChristtag = Christmas ATStefanitag = Christmas2 )
Holidays in Austria
var ( AUNewYear = NewHolidayFunc(calculateNewYearOceania) AUAustralianDay = NewHoliday(time.January, 26) AUGoodFriday = GoodFriday AUChristmasDay = NewHolidayFunc(calculateOcenaniaChristmasDay) AUBoxingDays = Christmas2 AUEasterMonday = EasterMonday AUAnzacDay = NewHolidayFunc(calculateAnzacDay) AUQueenBirthDay = NewHolidayFunc(calculateQueenBirthDay) AULabourDay = NewHolidayFunc(calculateAULabourDay) )
Holidays in Australia
var ( BENieuwjaar = NewYear BEPaasmaandag = EasterMonday BEDagVanDeArbeid = ECBLabourDay BEOnzeLieveHeerHemelvaart = NewHolidayFunc(calculateOnzeLieveHeerHemelvaart) BEPinkstermaandag = NewHolidayFunc(calculatePinkstermaandag) BENationaleFeestdag = NewHoliday(time.July, 21) BEOnzeLieveVrouwHemelvaart = NewHoliday(time.August, 15) BEAllerheiligen = NewHoliday(time.November, 1) BEWapenstilstand = NewHoliday(time.November, 11) BEKerstmis = Christmas )
Holidays in Belgium
var ( CANewYear = NewYear CAFamilyDay = NewHolidayFloat(time.February, time.Monday, 3) CAGoodFriday = GoodFriday CAVictoriaDay = NewHolidayFloat(time.May, time.Monday, 3) CACanadaDay = NewHoliday(time.July, 1) CACivicHoliday = NewHolidayFloat(time.August, time.Monday, 1) CALabourDay = NewHolidayFloat(time.September, time.Monday, 1) CAThanksgiving = NewHolidayFloat(time.October, time.Monday, 2) CARemembranceDay = NewHoliday(time.November, 11) CAChristmasDay = Christmas CABoxingDay = Christmas2 )
Canadian holidays
var ( CZNewYear = NewYear CZGoodFriday = GoodFriday CZEasterMonday = EasterMonday CZLabor = NewHoliday(time.May, 1) CZLiberation = NewHoliday(time.May, 8) CZSaintsCyril = NewHoliday(time.July, 5) CZJanHus = NewHoliday(time.July, 6) CZSaintWenceslas = NewHoliday(time.September, 28) CZFoundationCZSK = NewHoliday(time.October, 28) CZFreedom = NewHoliday(time.November, 17) CZChristmasEve = NewHoliday(time.December, 24) CZChristmas = Christmas CZSaintStephen = Christmas2 )
Czech holidays
var ( DENeujahr = NewYear DEHeiligeDreiKoenige = NewHoliday(time.January, 6) DEInternationalerFrauentag = NewHoliday(time.March, 8) DEKarFreitag = GoodFriday DEOstersonntag = NewHolidayFunc(calculateOstersonntag) DEOstermontag = EasterMonday DETagderArbeit = NewHoliday(time.May, 1) DEChristiHimmelfahrt = NewHolidayFunc(calculateHimmelfahrt) DEPfingstsonntag = NewHolidayFunc(calculatePfingstSonntag) DEPfingstmontag = NewHolidayFunc(calculatePfingstMontag) DEFronleichnam = NewHolidayFunc(calculateFronleichnam) DEMariaHimmelfahrt = NewHoliday(time.August, 15) DEWeltkindertag = NewHoliday(time.September, 20) DETagderDeutschenEinheit = NewHoliday(time.October, 3) DEReformationstag = NewHoliday(time.October, 31) DEReformationstag2017 = NewHolidayExact(time.October, 31, 2017) DEAllerheiligen = NewHoliday(time.November, 1) DEBußUndBettag = NewHolidayFunc(calculateBußUndBettag) DEErsterWeihnachtstag = Christmas DEZweiterWeihnachtstag = Christmas2 )
Holidays in Germany
var ( DKNytaarsdag = NewYear DKSkaertorsdag = NewHolidayFunc(calculateSkaertorsdag) DKLangfredag = GoodFriday DKPaaskedag = NewHolidayFunc(calculatePaaskedag) DKAndenPaaskedag = EasterMonday DKStoreBededag = NewHolidayFunc(calculateStoreBededag) DKKristiHimmelfartsdag = NewHolidayFunc(calculateKristiHimmelfartsdag) DKPinsedag = NewHolidayFunc(calculatePinsedag) DKAndenPinsedag = NewHolidayFunc(calculateAndenPinsedag) DKGrundlovsdag = NewHoliday(time.June, 5) DKJuleaften = NewHoliday(time.December, 24) DKJuledag = Christmas DKAndenJuledag = Christmas2 DKNytaarsaften = NewHoliday(time.December, 31) )
Holidays (official and traditional) in Denmark Reference https://da.wikipedia.org/wiki/Helligdag#Danske_helligdage
var ( ECBGoodFriday = GoodFriday ECBEasterMonday = EasterMonday ECBNewYearsDay = NewYear ECBLabourDay = NewHoliday(time.May, 1) ECBChristmasDay = Christmas ECBChristmasHoliday = Christmas2 )
European Central Bank Target2 holidays
var ( ESAñoNuevo = NewYear ESReyes = NewHoliday(time.January, 6) ESFiestaDelTrabajo = NewHoliday(time.May, 1) ESAsuncionDeLaVirgen = NewHoliday(time.August, 15) ESFiestaNacionalDeEspaña = NewHoliday(time.October, 12) ESTodosLosSantos = NewHoliday(time.November, 1) ESConstitucion = NewHoliday(time.December, 6) ESInmaculadaConcepcion = NewHoliday(time.December, 8) )
Holidays in Spain
var ( FRNouvelAn = NewYear FRLundiDePâques = EasterMonday FRFêteDuTravail = ECBLabourDay FRArmistice1945 = NewHoliday(time.May, 8) FRJeudiDeLAscension = NewHolidayFunc(calculateJeudiDeLAscension) FRLundiDePentecôte = NewHolidayFunc(calculateLundiDePentecôte) FRFêteNationale = NewHoliday(time.July, 14) FRAssomption = NewHoliday(time.August, 15) FRToussaint = NewHoliday(time.November, 1) FRArmistice1918 = NewHoliday(time.November, 11) FRNoël = Christmas )
Holidays in France
var ( GBNewYear = NewHolidayFunc(calculateNewYearsHoliday) GBGoodFriday = GoodFriday GBEasterMonday = EasterMonday GBEarlyMay = makeGBEarlyMay() GBSpringHoliday = NewHolidayFloat(time.May, time.Monday, -1) GBSummerHoliday = NewHolidayFloat(time.August, time.Monday, -1) GBChristmasDay = Christmas GBBoxingDay = Christmas2 )
British holidays
var ( ITCapodanno = NewYear ITEpifania = NewHoliday(time.January, 6) ITPasquetta = EasterMonday ITFestaDellaLiberazione = NewHoliday(time.April, 25) ITFestaDelLavoro = NewHoliday(time.May, 1) ITFestaDellaRepubblica = NewHoliday(time.June, 2) ITFerragosto = NewHoliday(time.August, 15) ITTuttiISanti = NewHoliday(time.November, 1) ITImmacolata = NewHoliday(time.December, 8) ITNatale = Christmas ITSantoStefano = Christmas2 )
Italian holidays
var ( NLNieuwjaar = NewYear NLGoedeVrijdag = GoodFriday NLPaasMaandag = EasterMonday NLKoningsDag = NewHolidayFunc(calculateKoningsDag) NLBevrijdingsDag = NewHoliday(time.May, 5) NLHemelvaart = DEChristiHimmelfahrt NLPinksterMaandag = DEPfingstmontag NLEersteKerstdag = Christmas NLTweedeKerstdag = Christmas2 )
Holidays in the Netherlands
var ( NOFoersteNyttaarsdag = NewYear NOSkjaertorsdag = NewHolidayFunc(calculateSkaertorsdag) NOLangfredag = GoodFriday NOFoerstePaaskedag = NewHolidayFunc(calculatePaskdagen) NOAndrePaaskedag = EasterMonday NOArbeiderenesdag = NewHoliday(time.May, 1) NOGrunnlovsdag = NewHoliday(time.May, 17) NOKristihimmelfartsdag = NewHolidayFunc(calculateKristiHimmelfardsdag) NOFoerstePinsedag = NewHolidayFunc(calculatePingstdagen) NOAndrePinsedag = NewHolidayFunc(calculateAndenPinsedag) NOFoersteJuledag = Christmas NOAndreJuledag = Christmas2 // Half days NOJulaften = NewHoliday(time.December, 24) NONyttaarsaften = NewHoliday(time.December, 31) )
Holidays in Norway Reference https://no.wikipedia.org/wiki/Helligdager_i_Norge
var ( NZNewYear = NewHolidayFunc(calculateNewYearOceania) NZGoodFriday = GoodFriday NZChristmasDay = NewHolidayFunc(calculateOcenaniaChristmasDay) NZBoxingDays = NewHolidayFunc(calculateOcenaniaBoxingDay) NZEasterMonday = EasterMonday NZAnzacDay = NewHolidayFunc(calculateNZAnzacDay) NZQueensBirthday = NewHolidayFunc(calculateQueensBirthday) NZLabourDay = NewHolidayFunc(calculateLabourDay) NZDayAfterNewYear = NewHolidayFunc(calculateDayAfterNewYear) NZWanagiDay = NewHolidayFunc(calculateWarangiDay) )
Holidays in Australia
var ( PLNewYear = NewYear PLThreeKings = NewHoliday(time.January, 6) PLEasterMonday = EasterMonday PLEasterSunday = NewHolidayFunc(calculateEasterSunday) PLLabourDay = NewHoliday(time.May, 1) PLNationalDay = NewHoliday(time.May, 3) PLPentecostDay = NewHolidayFunc(calculatePentecostDay) PLCorpusChristi = NewHolidayFunc(calculateCorpusChristiDay) PLAssumptionBlessedVirginMary = NewHoliday(time.August, 15) PLAllSaints = NewHoliday(time.November, 1) PLNationalIndependenceDay = NewHoliday(time.November, 11) PLChristmasDayOne = Christmas PLChristmasDayTwo = Christmas2 )
Poland holidays
var ( SENyarsdagen = NewYear SETrettondedagJul = NewHoliday(time.January, 6) SELangfredagen = GoodFriday SEPaskdagen = NewHolidayFunc(calculatePaskdagen) SEAnnandagPask = EasterMonday SEForstaMaj = NewHoliday(time.May, 1) SEKristiHimmelfardsdag = NewHolidayFunc(calculateKristiHimmelfardsdag) SEPingstdagen = NewHolidayFunc(calculatePingstdagen) SENationaldagen = NewHoliday(time.June, 6) SEMidsommarafton = NewHolidayFunc(calculateMidsommarafton) SEMidsommardagen = NewHolidayFunc(calculateMidsommardagen) SEAllaHelgonsDag = NewHolidayFunc(calculateAllaHelgonsDag) SEJulafton = NewHoliday(time.December, 24) SEJuldagen = Christmas SEAnnandagJul = Christmas2 SENewYearsEve = NewHoliday(time.December, 31) )
Holidays in Sweden Reference https://sv.wikipedia.org/wiki/Helgdagar_i_Sverige Days with the [2] notation, meaning days with reduced working hours haven't been added, as this is not regulated by law.
var ( SKNewYear = NewYear SKEpiphany = NewHoliday(time.January, 6) SKGoodFriday = GoodFriday SKEasterMonday = EasterMonday SKLabor = NewHoliday(time.May, 1) SKLiberation = NewHoliday(time.May, 8) SKSaintsCyril = NewHoliday(time.July, 5) SKSNP = NewHoliday(time.August, 29) SKConstitution = NewHoliday(time.September, 1) SKLadyOfSorrows = NewHoliday(time.September, 15) SKAllSaints = NewHoliday(time.November, 1) SKFreedom = NewHoliday(time.November, 17) SKChristmasEve = NewHoliday(time.December, 24) SKChristmas = Christmas SKSaintStephen = Christmas2 )
Slovak holidays
var ( USNewYear = NewYear USMLK = NewHolidayFloat(time.January, time.Monday, 3) USPresidents = NewHolidayFloat(time.February, time.Monday, 3) USMemorial = NewHolidayFloat(time.May, time.Monday, -1) USIndependence = NewHoliday(time.July, 4) USLabor = NewHolidayFloat(time.September, time.Monday, 1) USColumbus = NewHolidayFloat(time.October, time.Monday, 2) USVeterans = NewHoliday(time.November, 11) USThanksgiving = NewHolidayFloat(time.November, time.Thursday, 4) USChristmas = Christmas )
US holidays
var ( ZANewYear = NewYear ZAHumanRights = NewHoliday(time.March, 21) ZAGoodFriday = GoodFriday ZAEasterMonday = NewHolidayFunc(calculateEasterMonday) ZAFreedom = NewHoliday(time.April, 27) ZAWorkers = NewHoliday(time.May, 1) ZAYouth = NewHoliday(time.June, 16) ZANationalWomens = NewHoliday(time.August, 9) ZAHeritage = NewHoliday(time.September, 24) ZADayOfReconciliation = NewHoliday(time.December, 16) ZAChristmas = Christmas ZADayOfGoodwill = Christmas2 )
Holidays in South Africa Reference https://en.wikipedia.org/wiki/Public_holidays_in_South_Africa
Functions ¶
func AddAustralianHolidays ¶
func AddAustralianHolidays(c *Calendar)
AddAustralianHolidays adds all Australian holidays
func AddAustrianHolidays ¶ added in v1.0.2
func AddAustrianHolidays(c *Calendar)
AddAustrianHolidays adds all Austrian holidays to the Calendar
func AddBelgiumHolidays ¶
func AddBelgiumHolidays(c *Calendar)
AddBelgiumHolidays adds all Belgium holidays to the Calendar
func AddBritishHolidays ¶
func AddBritishHolidays(c *Calendar)
AddBritishHolidays adds all British holidays to the Calender
func AddCanadianHolidays ¶ added in v1.0.2
func AddCanadianHolidays(c *Calendar)
AddCanadianHolidays adds all Canadian holidays to the Calender
func AddCzechHolidays ¶ added in v1.0.4
func AddCzechHolidays(c *Calendar)
AddCzechHolidays adds all Czech holidays to the Calendar
func AddDanishHolidays ¶
func AddDanishHolidays(c *Calendar)
AddDanishHolidays adds all Danish holidays to the Calendar
func AddDanishTraditions ¶
func AddDanishTraditions(c *Calendar)
AddDanishTraditions adds Grundlovsdag (Constitution Day), Christmas Eve, and New Years Eve which are not official holidays.
func AddDutchHolidays ¶
func AddDutchHolidays(c *Calendar)
AddDutchHolidays adds all Dutch holidays to the Calendar
func AddEcbHolidays ¶
func AddEcbHolidays(c *Calendar)
AddEcbHolidays adds all ECB Target2 holidays to the calendar
func AddFranceHolidays ¶
func AddFranceHolidays(c *Calendar)
AddFranceHolidays adds all France holidays to the Calendar
func AddGermanHolidays ¶
func AddGermanHolidays(c *Calendar)
AddGermanHolidays adds all German holidays to the Calendar
func AddGermanyStateHolidays ¶
AddGermanyStateHolidays adds german state holidays to the calendar
func AddItalianHolidays ¶ added in v1.0.2
func AddItalianHolidays(c *Calendar)
AddItalianHolidays adds all Italian holidays to the Calendar
func AddNewZealandHoliday ¶
func AddNewZealandHoliday(c *Calendar)
AddNewZealandHoliday adds all New Zeland holidays
func AddNorwegianHalfDays ¶
func AddNorwegianHalfDays(c *Calendar)
AddNorwegianHalfDays are note holidays, but often practiced as a half-business day.
func AddNorwegianHolidays ¶
func AddNorwegianHolidays(c *Calendar)
AddNorwegianHolidays adds all Norwegian holidays to Calendar
func AddPolandHolidays ¶ added in v1.0.2
func AddPolandHolidays(c *Calendar)
AddPolandHolidays adds all Poland holidays to the Calendar
func AddSlovakHolidays ¶ added in v1.0.4
func AddSlovakHolidays(c *Calendar)
AddSlovakHolidays adds all Slovak holidays to the Calendar
func AddSouthAfricanHolidays ¶ added in v1.0.4
func AddSouthAfricanHolidays(cal *Calendar)
AddSouthAfricanHolidays adds all ZA holidays to the Calendar
func AddSpainHolidays ¶ added in v1.0.2
func AddSpainHolidays(c *Calendar)
AddSpainHolidays adds all Spain holidays to the Calendar
func AddSwedishHolidays ¶
func AddSwedishHolidays(c *Calendar)
AddSwedishHolidays adds all Swedish holidays to the Calendar
func AddUkraineHolidays ¶ added in v1.0.4
func AddUkraineHolidays(c *Calendar)
AddUkraineHolidays adds all Ukraine holidays to the Calendar
func AddUsHolidays ¶
func AddUsHolidays(cal *Calendar)
AddUsHolidays adds all US holidays to the Calendar
func IsWeekdayN ¶
IsWeekdayN reports whether the given date is the nth occurrence of the day in the month.
The value of n affects the direction of counting:
n > 0: counting begins at the first day of the month. n == 0: the result is always false. n < 0: counting begins at the end of the month.
func JulianDate ¶
JulianDate reports the Julian Date (which includes time as a fraction) for t.
func JulianDayNumber ¶
JulianDayNumber reports the Julian Day Number for t. Note that Julian days start at 12:00 UTC.
Types ¶
type Calendar ¶
type Calendar struct {
WorkdayFunc WorkdayFn // optional function to override workday flags
Observed ObservedRule
// contains filtered or unexported fields
}
Calendar represents a yearly calendar with a list of holidays.
func NewCalendar ¶
func NewCalendar() *Calendar
NewCalendar creates a new Calendar with no holidays defined and work days of Monday through Friday.
func (*Calendar) AddHoliday ¶
AddHoliday adds a holiday to the calendar's list.
func (*Calendar) AddSkipNonWorkdays ¶
AddSkipNonWorkdays returns start time plus d working duration
func (*Calendar) AddWorkHours ¶ added in v1.0.5
AddWorkHours determines the time in the future where the worked hours will be completed
func (*Calendar) CountHolidayHoursWithOffset ¶
CountHolidayHoursWithOffset returns the number of working hours in a range starting from the consumed start date to the end date set by the offset
func (*Calendar) CountWorkHours ¶ added in v1.0.5
CountWorkHours counts the actual number of worked hours between 2 different times
func (*Calendar) CountWorkdays ¶
CountWorkdays return amount of workdays between start and end dates
func (*Calendar) DailyWorkedTime ¶ added in v1.0.5
DailyWorkedTime returns the total time worked per day it makes it easy to compute working times per day allowing calls like c.AddWorkHours(time.Now(), 8 * c.DailyWorkedTime())
func (*Calendar) EndWorkTime ¶ added in v1.0.5
EndWorkTime returns the time at which work ends in the current day
func (*Calendar) IsHoliday ¶
IsHoliday reports whether a given date is a holiday. It does not account for the observation of holidays on alternate days.
func (*Calendar) NextWorkStart ¶ added in v1.0.5
NextWorkStart determines what will be the next future time work will start
func (*Calendar) SetWorkday ¶
SetWorkday changes the given day's status as a standard working day
func (*Calendar) SetWorkingHours ¶ added in v1.0.5
SetWorkingHours configures the calendar to override the default 9-17 working hours
func (*Calendar) StartWorkTime ¶ added in v1.0.5
StartWorkTime returns the time at which work starts in the current day
func (*Calendar) SubSkipNonWorkdays ¶ added in v1.0.2
SubSkipNonWorkdays returns start time minus d working duration
func (*Calendar) WorkdayN ¶
WorkdayN reports the day of the month that corresponds to the nth workday for the given year and month.
The value of n affects the direction of counting:
n > 0: counting begins at the first day of the month. n == 0: the result is always 0. n < 0: counting begins at the end of the month.
func (*Calendar) Workdays ¶
Workdays reports the total number of workdays for the given year and month.
func (*Calendar) WorkdaysFrom ¶
WorkdaysFrom reports the date of a workday that is offset days away from start.
If n > 0, then the date returned is start + offset workdays. If n == 0, then the date is returned unchanged. If n < 0, then the date returned is start - offset workdays.
type Holiday ¶
type Holiday struct {
Month time.Month
Weekday time.Weekday
Day int
Offset int
Year int
Func HolidayFn
// contains filtered or unexported fields
}
Holiday holds information about the yearly occurrence of a holiday.
A valid Holiday consists of one of the following: - Month and Day (such as March 14 for Pi Day) - Month, Weekday, and Offset (such as the second Monday of October for Columbus Day) - Offset (such as the 183rd day of the year for the start of the second half) - Month, Day, and Year (in case you want to specify holidays exactly for each year) - Func (to calculate the holiday)
func NewHoliday ¶
NewHoliday creates a new Holiday instance for an exact day of a month.
func NewHolidayExact ¶
NewHolidayExact creates a new Holiday instance for an exact day of a month and year.
func NewHolidayFloat ¶
NewHolidayFloat creates a new Holiday instance for an offset-based day of a month.
func NewHolidayFunc ¶
NewHolidayFunc creates a new Holiday instance that uses a function to calculate the day and month.
type HolidayFn ¶
HolidayFn calculates the occurrence of a holiday for the given year. This is useful for holidays like Easter that depend on complex rules.
type ObservedRule ¶
type ObservedRule int
ObservedRule represents a rule for observing a holiday that falls on a weekend.
const ( ObservedNearest ObservedRule = iota // nearest weekday (Friday or Monday) ObservedExact // the exact day only ObservedMonday // Monday always ObservedMondayTuesday // As above, but also accounts for Christmas Day being on a weekend (which pushes Boxing Day to Tuesday) )
ObservedRule are the specific ObservedRules
Source Files
¶
- cal.go
- doc.go
- holiday.go
- holiday_defs.go
- holiday_defs_at.go
- holiday_defs_au.go
- holiday_defs_be.go
- holiday_defs_ca.go
- holiday_defs_cz.go
- holiday_defs_de.go
- holiday_defs_dk.go
- holiday_defs_ecb.go
- holiday_defs_es.go
- holiday_defs_fr.go
- holiday_defs_gb.go
- holiday_defs_it.go
- holiday_defs_nl.go
- holiday_defs_no.go
- holiday_defs_nz.go
- holiday_defs_pl.go
- holiday_defs_se.go
- holiday_defs_sk.go
- holiday_defs_ua.go
- holiday_defs_us.go
- holiday_defs_za.go