calendar

package module
v0.0.0-...-882d49e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2024 License: MIT Imports: 5 Imported by: 0

README

SCM logo Exchange Calendars

Build Status Coverage GoReportCard Go Reference

Overview

calendar is a Golang package that provides exchange-specific calendar functionality. It enables you to manage market holidays, business days, early closes, and sessions defined by Market Identifier Codes (MIC) for various financial exchanges globally.

Features

  • Business Day Calculations: Check if a date is a business day, holiday, or early close.
  • Custom Holidays: Define and manage custom holidays (recurring or one-time events).
  • Exchange Sessions: Handle exchange sessions with customizable open/close times.
  • Multi-Year Support: Supports predefined calendars for financial exchanges over several years.
  • Market Identifier Code: Exchange calendars are defined by their ISO-10383 Market Identifier Code (MIC).

Installation

Install the package by running:

go get github.com/scmhub/calendar

Usage

Basic example
import (
    "fmt"
    "time"
    "github.com/scmhub/calendar"
)

func main() {
    // Load the New York Stock Exchange (XNYS) calendar
    nyse := calendar.XNYS()

    today := time.Now()

    // Check if today is a business day
    if nyse.IsBusinessDay(today) {
        fmt.Println("Today is a business day.")
    } else {
        fmt.Println("Today is not a business day.")
    }

    // Get the next business day
    nextBusinessDay := nyse.NextBusinessDay(today)
    fmt.Printf("Next business day: %v\n", nextBusinessDay)
    fmt.
}
Print specific calendar
import (
    "fmt"
    "github.com/scmhub/calendar"
)

func main() {
    // Load the New York Stock Exchange (XNYS) calendar
    nyse := calendar.XNYS()

    nyse.SetYears(2021,2022)

    fmt.Print(nyse)
}

Output

Calendar New York Stock Exchange:
        2021-Jan-01 Fri    New Year's Day
        2021-Jan-18 Mon    Martin Luther King Jr. Day
        2021-Feb-15 Mon    Presidents' Day
        2021-Apr-02 Fri    Good Friday
        2021-May-31 Mon    Memorial Day
        2021-Jul-05 Mon    Independence Day
        2021-Sep-06 Mon    Labor Day
        2021-Nov-25 Thu    Thanksgiving Day
        2021-Nov-26 Fri    Black Friday
        2021-Dec-24 Fri    Christmas Day
        2022-Jan-17 Mon    Martin Luther King Jr. Day
        2022-Feb-21 Mon    Presidents' Day
        2022-Apr-15 Fri    Good Friday
        2022-May-30 Mon    Memorial Day
        2022-Jun-20 Mon    Juneteenth National Independence Day
        2022-Jul-04 Mon    Independence Day
        2022-Sep-05 Mon    Labor Day
        2022-Nov-24 Thu    Thanksgiving Day
        2022-Nov-25 Fri    Black Friday
        2022-Dec-26 Mon    Christmas Day

Creating Holidays & Calendars
// Create Recurring Holidays
MemorialDay = &Holiday{
    Name:       "Memorial Day",
    Month:      time.May,
    Weekday:    time.Monday,
    NthWeekday: -1,
    calc:       CalcNthWeekday,
}
IndependenceDay = &Holiday{
    Name:       "Independence Day",
    Month:      time.July,
    Day:        4,
    observance: nearestWorkday,
    calc:       CalcDayOfMonth,
}

// Create Non Recurring Holidays
// September 11 - september 11, 2001
SeptemberEleven = &Holiday{
    Name:   "Sepember 11",
    Month:  time.September,
    Day:    11,
    OnYear: 2001,
    calc:   CalcDayOfMonth,
}

// September 11 -14 range
SeptemberElevenDays = []*Holiday{
    SeptemberEleven,
    SeptemberEleven.Copy("Sepember 11 day 2").SetOffset(1),
    SeptemberEleven.Copy("Sepember 11 day 3").SetOffset(2),
    SeptemberEleven.Copy("Sepember 11 day 4").SetOffset(3),
}

// Copy an Holiday and set observance
NewYear.Copy("New Year's Day").SetObservance(sundayToMonday)

// Create a Calendar
c := NewCalendar("New York Stock Exchange", NewYork, 2010, 2025)
// Set Session
c.SetSession(&Session{
    EarlyOpen:  7 * time.Hour,
    Open:       9*time.Hour + 30*time.Minute,
    Close:      16 * time.Hour,
    EarlyClose: 13 * time.Hour,
    LateClose:  20 * time.Hour,
})
// Add Recurring Holidays
c.AddHolidays(
    NewYear.Copy().SetObservance(sundayToMonday),
    MLKDay,
    PresidentsDay,
    GoodFriday,
    MemorialDay,
    JuneteenthDay,
    IndependenceDay,
    LaborDay,
    ThanksgivingDay,
    ChristmasDay.Copy().SetObservance(nearestWorkday),
)
// Add Non Recurring Holidays
c.AddHolidays(USNationalDaysOfMourning...)
c.AddHolidays(SeptemberElevenDays...)
c.AddHolidays(HurricaneSandyDays...)
// Early Closing
c.AddEarlyClosingDays(
    BeforeIndependenceDay.Copy().SetObservance(onlyOnWeekdays(time.Monday, time.Tuesday, time.Thursday)),
    AfterIndependenceDay.Copy().SetBeforeYear(2013).SetObservance(onlyOnWeekdays(time.Friday)),
    BeforeIndependenceDay.Copy().SetAfterYear(2013).SetObservance(onlyOnWeekdays(time.Wednesday)),
    BlackFriday,
    ChristmasEve.Copy().SetObservance(exeptOnWeekdays(time.Friday)), // Overlap Christmas day observance if friday
)

Existing Calendar

Market place Exchange MIC
New York New York Stock Exchange XNYS
New York NASDAQ XNAS
Chicago CBOE XCBO
Chicago CBOE Futures Exchange XCBF
Toronto Toronto Stock Exchange XTSE
Mexico Mexican Stock Exchange XMEX
Sao Paulo BMF Bovespa BVMF
London London Stock Exchange XLON
Amsterdam Euronext Amsterdam XAMS
Brussels Euronext Brussels XBRU
Lisbon Euronext Lisbon XLIS
Paris Euronext Paris XPAR
Milan Euronext Milan - Borsa Italiana XMIL
Madrid Bolsa de Madrid XMAD
Franckfurt Deutsche Boerse XFRA
Franckfurt Xetra XETR
Zurich SIX Swiss Exchange XSWX
Mumbai Bombay Stock Exchange XBOM
Bangkok Stock Exchange of Thailand XBKK
Singapore Singapore Exchange XSES
Hong Kong Hong Kong Stock Exchange XHKG
Shenzhen Shenzhen Stock Exchange XSHE
Shanghai Shanghai Stock Exchange XSHG
Seoul Korea Exchange XKRX
Tokyo Japan Exchange Group XJPX
Sidney Austrialian Securities Exchange XASX

API References

Some key functions:

  • IsBusinessDay(t time.Time): Returns whether the date is a business day.
  • NextBusinessDay(t time.Time): Gets the next business day after the given date.
  • AddHolidays(h ...Holiday): Adds holidays to the calendar.
  • SetSession(session *Session): Configures open/close times for the exchange.

Contributing

Contributions are welcome! Please submit issues or pull requests to improve the package. For significant changes, open an issue to discuss your ideas first.

Documentation

Index

Constants

View Source
const (
	AlMuharram       = time.Month(1)
	Safar            = time.Month(2)
	RabiAlAwwal      = time.Month(3)
	RabiAlAkhir      = time.Month(4)
	JumadaAlUla      = time.Month(5)
	JumadaAlThaniyah = time.Month(6)
	Rajab            = time.Month(7)
	ShaBan           = time.Month(8)
	Ramadan          = time.Month(9)
	Shawwal          = time.Month(10)
	DhuAlQaDah       = time.Month(11)
	DhuAlHijjah      = time.Month(12)
)

Hijri Calendar months

View Source
const YearsAhead = 5
View Source
const YearsPast = 5

Variables

View Source
var (
	Mexico, _       = time.LoadLocation("America/Mexico_City")
	Chicago, _      = time.LoadLocation("America/Chicago")
	Toronto, _      = time.LoadLocation("America/Toronto")
	NewYork, _      = time.LoadLocation("America/New_York")
	SaoPaulo, _     = time.LoadLocation("America/Sao_Paulo")
	London, _       = time.LoadLocation("Europe/London")
	Lisbon, _       = time.LoadLocation("Europe/Lisbon")
	Madrid, _       = time.LoadLocation("Europe/Madrid")
	Amsterdam, _    = time.LoadLocation("Europe/Amsterdam")
	Brussels, _     = time.LoadLocation("Europe/Brussels")
	Paris, _        = time.LoadLocation("Europe/Paris")
	Zurich, _       = time.LoadLocation("Europe/Zurich")
	Milan, _        = time.LoadLocation("Europe/Rome")
	Franckfurt, _   = time.LoadLocation("Europe/Berlin")
	Moscow, _       = time.LoadLocation("Europe/Moscow")
	Johannesburg, _ = time.LoadLocation("Africa/Johannesburg")
	Dubai, _        = time.LoadLocation("Asia/Dubai")
	Mumbai, _       = time.LoadLocation("Asia/Kolkata")
	Singapore, _    = time.LoadLocation("Asia/Singapore")
	Bangkok, _      = time.LoadLocation("Asia/Bangkok")
	HongKong, _     = time.LoadLocation("Asia/Hong_Kong")
	Shenzhen, _     = time.LoadLocation("Asia/Hong_Kong")
	Shanghai, _     = time.LoadLocation("Asia/Shanghai")
	Seoul, _        = time.LoadLocation("Asia/Seoul")
	Tokyo, _        = time.LoadLocation("Asia/Tokyo")
	Sydney, _       = time.LoadLocation("Australia/Sydney")
)
View Source
var (
	// New Year's day on 1-Jan
	NewYear = &Holiday{
		Name:  "New Year's Day",
		Month: time.January,
		Day:   1,
		calc:  CalcDayOfMonth,
	}
	// Epiphany on 6-Jan
	Epiphany = &Holiday{
		Name:  "Epiphany",
		Month: time.January,
		Day:   6,
		calc:  CalcDayOfMonth,
	}
	// Lunar New Year's Eve
	LunarNewYearEve = &Holiday{
		Name:   "Lunar New Year's Eve",
		Month:  time.January,
		Day:    1,
		Offset: -1,
		calc:   CalcLunisolarDayOfMonth,
	}
	// Lunar New Year's day
	LunarNewYear = &Holiday{
		Name:  "Lunar New Year's Day",
		Month: time.January,
		Day:   1,
		calc:  CalcLunisolarDayOfMonth,
	}
	// Carnival, Mardi Gras or Fat Tuesday  - 47 days before Easter
	Carnival = &Holiday{
		Name:   "Carnival",
		Offset: -47,
		calc:   CalcEasterOffset,
	}
	// Maundy Thursday - three days before Easter
	MaundyThursday = &Holiday{
		Name:   "Maundy Thursday",
		Offset: -3,
		calc:   CalcEasterOffset,
	}
	// Good Friday - two days before Easter
	GoodFriday = &Holiday{
		Name:   "Good Friday",
		Offset: -2,
		calc:   CalcEasterOffset,
	}
	// Northward Equinox - March Equinox - ~20-Mar
	NorthwardEquinox = &Holiday{
		Name: "Northward Equinox",
		calc: CalcNorthwardEquinox,
	}
	// Easter Monday - the day after Easter
	EasterMonday = &Holiday{
		Name:   "Easter Monday",
		Offset: 1,
		calc:   CalcEasterOffset,
	}
	// Eid al-Fitr - 1st day of Shawwal (10th month)
	EidAlFitr = &Holiday{
		Name:  "Eid al-Fitr",
		Month: Shawwal,
		Day:   1,
		calc:  CalcHijriDayOfMonth,
	}
	// Eid al-Adha - 1st day of Dhu al-Hijjah (10th month)
	EidAlAdha = &Holiday{
		Name:  "Eid al-Adha",
		Month: DhuAlHijjah,
		Day:   10,
		calc:  CalcHijriDayOfMonth,
	}
	// WorkersDay is the International Workers' Day on 1-May
	WorkersDay = &Holiday{
		Name:  "International Workers' Day",
		Month: time.May,
		Day:   1,
		calc:  CalcDayOfMonth,
	}
	// Buddha's Birthday - 8th day of the 4th lunar month
	BuddhasBirthday = &Holiday{
		Name:  "Buddha's Birthday",
		Month: time.Month(4),
		Day:   8,
		calc:  CalcLunisolarDayOfMonth,
	}
	// Vesak Day - 15th day of the fourth lunar month
	VesakDay = &Holiday{
		Name:  "Vesak Day",
		Month: time.Month(4),
		Day:   15,
		calc:  CalcLunisolarDayOfMonth,
	}
	// Deepavali or Diwali, victory of light - the last day of the lunar month Asvina
	Deepavali = &Holiday{
		Name:  "Deepavali",
		Month: time.Month(9),
		Day:   -1,
		calc:  CalcLunisolarDayOfMonth,
	}
	// Ascension Day on the 39th day after Easter
	AscensionDay = &Holiday{
		Name:   "Ascension Day",
		Offset: 39,
		calc:   CalcEasterOffset,
	}
	// Pentecost Monday (or Whit Monday) on the day after Pentecost (50 days after Easter)
	PentecostMonday = &Holiday{
		Name:   "Pentecost Monday",
		Offset: 50,
		calc:   CalcEasterOffset,
	}
	// Corpus Christi 60 days after Easter
	CorpusChristi = &Holiday{
		Name:   "Corpus Christi",
		Offset: 60,
		calc:   CalcEasterOffset,
	}
	// Northern Solstice - June Solstice - ~20-Jun
	NorthernSolstice = &Holiday{
		Name: "Northern Solstice",
		calc: CalcNorthernSolstice,
	}
	// Assumption of Mary on 15-Aug
	AssumptionOfMary = &Holiday{
		Name:  "Assumption of Mary",
		Month: time.August,
		Day:   15,
		calc:  CalcDayOfMonth,
	}
	// Souththward Equinox - September Equinox - ~20-Sep
	SouthwardEquinox = &Holiday{
		Name: "Souththward Equinox",
		calc: CalcSouthwardEquinox,
	}
	// Double Ninth (Chung Yeung) Festival- 9th day of the 9th lunar month
	DoubleNinthFestival = &Holiday{
		Name:  "Double Ninth (Chung Yeung) Festival",
		Month: time.Month(9),
		Day:   9,
		calc:  CalcLunisolarDayOfMonth,
	}
	// Reformation Day - 31-Oct-2017
	ReformationDay = &Holiday{
		Name:  "Reformation Day",
		Month: time.October,
		Day:   31,
		calc:  CalcDayOfMonth,
	}
	// All Saints' Day on 1-Nov
	AllSaintsDay = &Holiday{
		Name:  "All Saints' Day",
		Month: time.November,
		Day:   1,
		calc:  CalcDayOfMonth,
	}
	// Armistice Day on 11-Nov
	ArmisticeDay = &Holiday{
		Name:  "Armistice Day",
		Month: time.November,
		Day:   11,
		calc:  CalcDayOfMonth,
	}
	// Immaculate Conception on 8-Dec
	ImmaculateConception = &Holiday{
		Name:  "Immaculate Conception",
		Month: time.December,
		Day:   8,
		calc:  CalcDayOfMonth,
	}
	// Southern Solstice - December Solstice - ~20-Dec
	SouthernSolstice = &Holiday{
		Name: "Southern Solstice",
		calc: CalcSouthernSolstice,
	}
	// Christmas Eve on 24-Dec
	ChristmasEve = &Holiday{
		Name:  "Christmas Eve",
		Month: time.December,
		Day:   24,
		calc:  CalcDayOfMonth,
	}
	// Christmas Day on 25-Dec
	ChristmasDay = &Holiday{
		Name:  "Christmas Day",
		Month: time.December,
		Day:   25,
		calc:  CalcDayOfMonth,
	}
	// BoxingDay is the day after Christmas (Boxing Day / St. Stephen's Day) on 26-Dec
	BoxingDay = &Holiday{
		Name:  "Boxing Day",
		Month: time.December,
		Day:   26,
		calc:  CalcDayOfMonth,
	}
	// New Year's Eve on 31-Dec
	NewYearsEve = &Holiday{
		Name:  "New Year's Eve",
		Month: time.December,
		Day:   31,
		calc:  CalcDayOfMonth,
	}
)
View Source
var (
	// Martin Luther King Jr. Day on the 3rd Monday in January
	MLKDay = &Holiday{
		Name:       "Martin Luther King Jr. Day",
		Month:      time.January,
		Weekday:    time.Monday,
		NthWeekday: 3,
		calc:       CalcNthWeekday,
	}
	// Presidents' Day or Washington's Birthday on the 3rd Monday in February
	PresidentsDay = &Holiday{
		Name:       "Presidents' Day",
		Month:      time.February,
		Weekday:    time.Monday,
		NthWeekday: 3,
		calc:       CalcNthWeekday,
	}
	// Memorial Day on the last Monday in May
	MemorialDay = &Holiday{
		Name:       "Memorial Day",
		Month:      time.May,
		Weekday:    time.Monday,
		NthWeekday: -1,
		calc:       CalcNthWeekday,
	}
	// Juneteenth National Independence Day on 19-Jun
	JuneteenthDay = &Holiday{
		Name:       "Juneteenth National Independence Day",
		Month:      time.June,
		Day:        19,
		AfterYear:  2022,
		Observance: nearestWorkday,
		calc:       CalcDayOfMonth,
	}
	// Independence Day on 4-Jul
	IndependenceDay = &Holiday{
		Name:       "Independence Day",
		Month:      time.July,
		Day:        4,
		Observance: nearestWorkday,
		calc:       CalcDayOfMonth,
	}
	// Day Before Independence Day
	BeforeIndependenceDay = &Holiday{
		Name:  "Day before Independence Day",
		Month: time.July,
		Day:   3,
		calc:  CalcDayOfMonth,
	}
	// Day Before Independence Day
	AfterIndependenceDay = &Holiday{
		Name:  "Day after Independence Day",
		Month: time.July,
		Day:   5,
		calc:  CalcDayOfMonth,
	}
	// Labor Day on the first Monday in September
	LaborDay = &Holiday{
		Name:       "Labor Day",
		Month:      time.September,
		Weekday:    time.Monday,
		NthWeekday: 1,
		calc:       CalcNthWeekday,
	}

	// Columbus Day on the second Monday in October
	ColumbusDay = &Holiday{
		Name:       "Columbus Day",
		Month:      time.October,
		Weekday:    time.Monday,
		NthWeekday: 2,
		calc:       CalcNthWeekday,
	}
	// Veterans Day on 11-Nov
	VeteransDay = &Holiday{
		Name:  "Veterans Day",
		Month: time.November,
		Day:   11,
		calc:  CalcDayOfMonth,
	}
	// Thanksgiving Day on the fourth Thursday in November
	ThanksgivingDay = &Holiday{
		Name:       "Thanksgiving Day",
		Month:      time.November,
		Weekday:    time.Thursday,
		NthWeekday: 4,
		calc:       CalcNthWeekday,
	}
	// Black Friday is the day following Thanksgiving
	BlackFriday = &Holiday{
		Name:       "Black Friday",
		Month:      time.November,
		Weekday:    time.Thursday,
		NthWeekday: 4,
		Offset:     1,
		calc:       CalcNthWeekday,
	}

	// President Richard Nixon - April 27, 1994
	NixonMourningDay = &Holiday{
		Name:   "President Richard Nixon Mourning Day",
		Month:  time.April,
		Day:    27,
		OnYear: 1994,
		calc:   CalcDayOfMonth,
	}
	// President Ronald W. Reagan - June 11, 2004
	ReaganMourningDay = &Holiday{
		Name:   "President Ronald W. Reagan Mourning Day",
		Month:  time.June,
		Day:    11,
		OnYear: 2004,
		calc:   CalcDayOfMonth,
	}
	// President Gerald R. Ford - Jan 2, 2007
	FordMourningDay = &Holiday{
		Name:   "President Gerald R. Ford Mourning Day",
		Month:  time.January,
		Day:    2,
		OnYear: 2007,
		calc:   CalcDayOfMonth,
	}
	// President George Bush Senior - Nov 30, 2018
	BushSeniorMourningDay = &Holiday{
		Name:   "President George Bush Senior Mourning Day",
		Month:  time.November,
		Day:    30,
		OnYear: 2018,
		calc:   CalcDayOfMonth,
	}
	// National days of Mourning for the United States of America
	USNationalDaysOfMourning = []*Holiday{
		NixonMourningDay,
		ReaganMourningDay,
		FordMourningDay,
		BushSeniorMourningDay,
	}
	// September 11 - september 11, 2001
	SeptemberEleven = &Holiday{
		Name:   "Sepember 11",
		Month:  time.September,
		Day:    11,
		OnYear: 2001,
		calc:   CalcDayOfMonth,
	}
	// September 11 -14 range
	SeptemberElevenDays = []*Holiday{
		SeptemberEleven,
		SeptemberEleven.Copy("Sepember 11 day 2").SetOffset(1),
		SeptemberEleven.Copy("Sepember 11 day 3").SetOffset(2),
		SeptemberEleven.Copy("Sepember 11 day 4").SetOffset(3),
	}
	// Hurricane Sandy - october 29, 2012
	HurricaneSandy = &Holiday{
		Name:   "Hurricane Sandy",
		Month:  time.October,
		Day:    29,
		OnYear: 2012,
		calc:   CalcDayOfMonth,
	}
	HurricaneSandyDays = []*Holiday{
		HurricaneSandy,
		HurricaneSandy.Copy("Hurricane Sandy day 2").SetOffset(1),
	}
)
View Source
var (
	// Early May or May Day on the first monday of May
	EarlyMay = &Holiday{
		Name:       "Early May Bank Holiday",
		Month:      time.May,
		Weekday:    time.Monday,
		NthWeekday: 1,
		calc:       CalcNthWeekday,
	}
	// Spring Bank Holiday or Late May on the last monday of May
	SpringHoliday = &Holiday{
		Name:       "Spring Bank Holiday",
		Month:      time.May,
		Weekday:    time.Monday,
		NthWeekday: -1,
		calc:       CalcNthWeekday,
	}
	// Summer Bank Holiday on the last monday of August
	SummerHoliday = &Holiday{
		Name:       "Summer Bank Holiday",
		Month:      time.August,
		Weekday:    time.Monday,
		NthWeekday: -1,
		calc:       CalcNthWeekday,
	}

	// Queen Elizabeth II Golden Jubilee - 3,4 Jun 2002
	GoldenJubilee = &Holiday{
		Name:   "Golden Jubilee",
		Month:  time.June,
		Day:    3,
		OnYear: 2002,
		calc:   CalcDayOfMonth,
	}
	GoldenJubileeDays = []*Holiday{
		GoldenJubilee,
		GoldenJubilee.Copy("Golden Jubilee day 2").SetOffset(1),
	}
	// Wedding Day of Prince William and Catherine Middleton
	WilliamWedding = &Holiday{
		Name:   "Wedding Day of Prince William and Catherine Middleton",
		Month:  time.April,
		Day:    29,
		OnYear: 2011,
		calc:   CalcDayOfMonth,
	}
	// Queen Elizabeth II Diamond Jubilee - 4,5 Jun 2012
	DiamondJubilee = &Holiday{
		Name:   "Diamond Jubilee",
		Month:  time.June,
		Day:    4,
		OnYear: 2012,
		calc:   CalcDayOfMonth,
	}
	DiamondJubileeDays = []*Holiday{
		DiamondJubilee,
		DiamondJubilee.Copy("Diamond Jubilee day 2").SetOffset(1),
	}
	// VE-Day 75th Anniversary
	VEAnniversary = &Holiday{
		Name:   "VE-Day 75th Anniversary",
		Month:  time.May,
		Day:    8,
		OnYear: 2020,
		calc:   CalcDayOfMonth,
	}
	// Queen Elizabeth II Platinum Jubilee - 2,3 Jun 2022
	//  The late May bank holiday will be moved to Thursday 2nd June 2022 and the new, additional bank holiday will be on Friday 3rd June
	PlatinumJubilee = &Holiday{
		Name:   "Platinum Jubilee",
		Month:  time.June,
		Day:    2,
		OnYear: 2022,
		calc:   CalcDayOfMonth,
	}
	PlatinumJubileeDays = []*Holiday{
		PlatinumJubilee,
		PlatinumJubilee.Copy("Platinum Jubilee day 2").SetOffset(1),
	}
)
View Source
var (
	// Liberty Day - 25-Apr
	LibertyDay = &Holiday{
		Name:  "Liberty Day",
		Month: time.April,
		Day:   25,
		calc:  CalcDayOfMonth,
	}
	// Portugal Day - 10-Jun
	PortugalDay = &Holiday{
		Name:  "Portugal Republic Day",
		Month: time.October,
		Day:   5,
		calc:  CalcDayOfMonth,
	}
	// Portugal Independence Day - 13-Jun
	SaintAnthonysDay = &Holiday{
		Name:  "Saint Anthony's Day",
		Month: time.December,
		Day:   1,
		calc:  CalcDayOfMonth,
	}
	// Portugal Republic Day - 5-Oct
	PortugalRepublicDay = &Holiday{
		Name:  "Portugal REpublic Day",
		Month: time.October,
		Day:   5,
		calc:  CalcDayOfMonth,
	}
	// Portugal Independence Day - 1-Dec
	PortugalIndependenceDay = &Holiday{
		Name:  "Portugal Independence Day",
		Month: time.December,
		Day:   1,
		calc:  CalcDayOfMonth,
	}
)
View Source
var (
	// National Day of Spain - 5-Oct
	SpainNationalDay = &Holiday{
		Name:  "National Day of Spain",
		Month: time.October,
		Day:   12,
		calc:  CalcDayOfMonth,
	}
	// Constitution Day - 6-Dec
	SpainConstitutionDay = &Holiday{
		Name:  "Constitution Day",
		Month: time.December,
		Day:   6,
		calc:  CalcDayOfMonth,
	}
)
View Source
var (
	// Berchtold's Day
	BerchtoldsDay = &Holiday{
		Name:  "Berchtold's Day",
		Month: time.January,
		Day:   2,
		calc:  CalcDayOfMonth,
	}
	// Swiss National Day
	SwissNationalDay = &Holiday{
		Name:  "Swiss National Day",
		Month: time.August,
		Day:   1,
		calc:  CalcDayOfMonth,
	}
)
View Source
var (
	// Quingming Festival (Tomb Sweeping Day) - 104 days after start of winter usually April 4 or 5
	QingmingJie = &Holiday{
		Name:   "Quingming Festival",
		OnYear: -1,
		Offset: 104,
		calc:   CalcSouthernSolstice,
	}
	// Dragon Boat Festival day - 5th day of 5th lunar month
	DragonBoatFestival = &Holiday{
		Name:  "Dragon Boat Festival",
		Month: time.Month(5),
		Day:   5,
		calc:  CalcLunisolarDayOfMonth,
	}
	// People's Republic of China National day - 1-Oct
	ChinaNationalDay = &Holiday{
		Name:  "China National Day",
		Month: time.October,
		Day:   1,
		calc:  CalcDayOfMonth,
	}
	// Mid-Autumn Festival 中秋節 - 15yh day of the 8th lunar month
	MidAutumnFestival = &Holiday{
		Name:  "Mid-Autumn Festival",
		Month: time.Month(8),
		Day:   15,
		calc:  CalcLunisolarDayOfMonth,
	}
)

China Holidays

View Source
var (
	// Coming of Age Day - Seijin no hi - 成人の日 - 2nd monday of January
	ComingOfAgeDay = &Holiday{
		Name:       "Coming of Age Day",
		Month:      time.January,
		Weekday:    time.Monday,
		NthWeekday: 2,
		calc:       CalcNthWeekday,
	}
	// National Foundation Day - Kenkoku kinen no hi - 建国記念の日 - 11-Feb
	NationalFoundationDay = &Holiday{
		Name:  "National Foundation Day",
		Month: time.February,
		Day:   11,
		calc:  CalcDayOfMonth,
	}
	// Greenery Day Before 2007 - Midori no hi - みどりの日 - 29-Apr before 2007
	GreeneryDayBefore2007 = &Holiday{
		Name:       "Greenery Day",
		Month:      time.April,
		Day:        29,
		BeforeYear: 2007,
		calc:       CalcDayOfMonth,
	}
	// Showa Day - Shōwa no hi - 昭和の日 - 29-Apr after 2007
	ShowaDay = &Holiday{
		Name:      "Showa Day",
		Month:     time.April,
		Day:       29,
		AfterYear: 2007,
		calc:      CalcDayOfMonth,
	}
	// Constitution Memorial Day - Kenpō kinen bi - 憲法記念日 - 3-May
	ConstitutionMemorialDay = &Holiday{
		Name:  "Constitution Memorial Day",
		Month: time.May,
		Day:   3,
		calc:  CalcDayOfMonth,
	}
	// Citizen's Holiday ot the Golden Week before 2007 - Kokumin no kyūjitsu - 国民の休日 - 4-May before 2007
	CitizensHolidayGoldenWeek = &Holiday{
		Name:       "Citizen's Holiday of the Golden Week",
		Month:      time.May,
		Day:        4,
		BeforeYear: 2007,
		calc:       CalcDayOfMonth,
	}
	// Greenery Day After 2007 - Midori no hi - みどりの日 - 4-May after 2007
	GreeneryDayAfter2007 = &Holiday{
		Name:      "Greenery Day",
		Month:     time.May,
		Day:       4,
		AfterYear: 2007,
		calc:      CalcDayOfMonth,
	}
	// Children's Day - Kodomo no hi - こどもの日 - 5-May
	ChildrensDay = &Holiday{
		Name:  "Children's Day",
		Month: time.May,
		Day:   5,
		calc:  CalcDayOfMonth,
	}
	// Marine Day - Umi no hi - 海の日 - 3rd monday of July
	MarineDay = &Holiday{
		Name:       "Marine Day",
		Month:      time.July,
		Weekday:    time.Monday,
		NthWeekday: 3,
		AfterYear:  2003,
		calc:       CalcNthWeekday,
	}
	// Marine Day before 2003 - Umi no hi - 海の日 - 20-July
	MarineDayBefore2003 = &Holiday{
		Name:       "Marine Day before 2003",
		Month:      time.July,
		Day:        23,
		BeforeYear: 2003,
		calc:       CalcDayOfMonth,
	}
	// Marine Day 2020- Umi no hi - 海の日 - Changed for Tokyo Olympics - 23-Jul-2020
	MarineDay2020 = &Holiday{
		Name:   "Marine Day 2020",
		Month:  time.July,
		Day:    23,
		OnYear: 2020,
		calc:   CalcDayOfMonth,
	}
	// Marine Day 2021- Umi no hi - 海の日 - Changed for Tokyo Olympics (2020 postponed) - 22-Jul-2021
	MarineDay2021 = &Holiday{
		Name:   "Marine Day 2021",
		Month:  time.July,
		Day:    22,
		OnYear: 2021,
		calc:   CalcDayOfMonth,
	}
	// Mountain Day - Yama no hi - 山の日 - 3rd monday of July
	MountainDay = &Holiday{
		Name:      "Mountain Day",
		Month:     time.August,
		Day:       11,
		AfterYear: 2016,
		calc:      CalcDayOfMonth,
	}
	// Mountain Day 2020 - Yama no hi - 山の日 - Changed for Tokyo Olympics - 10-Aug-2020
	MountainDay2020 = &Holiday{
		Name:   "Mountain Day 2020",
		Month:  time.August,
		Day:    10,
		OnYear: 2020,
		calc:   CalcDayOfMonth,
	}
	// Mountain Day 2021 - Yama no hi - 山の日 - Changed for Tokyo Olympics (2020 postponed) - 9-Aug-2021
	MountainDay2021 = &Holiday{
		Name:   "Mountain Day 2021",
		Month:  time.August,
		Day:    9,
		OnYear: 2021,
		calc:   CalcDayOfMonth,
	}
	// Respect for the Aged Day - Keirō no hi - 敬老の日 - 3rd monday of September after 2003
	RespectForTheAgedDay = &Holiday{
		Name:       "Respect for the Aged Day",
		Month:      time.September,
		Weekday:    time.Monday,
		NthWeekday: 3,
		AfterYear:  2003,
		calc:       CalcNthWeekday,
	}
	// Respect for the Aged Day before 2003 - Keirō no hi - 敬老の日 - 15-Sep before 2003
	RespectForTheAgedDayBefore2003 = &Holiday{
		Name:       "Respect for the Aged Day before 2003",
		Month:      time.September,
		Day:        15,
		NthWeekday: 3,
		BeforeYear: 2003,
		calc:       CalcDayOfMonth,
	}
	// Health and Sports Day - Supōtsu no hi - スポーツの日 - 2nd monday of October
	HealthAndSportsDay = &Holiday{
		Name:       "Health and Sports Day",
		Month:      time.October,
		Weekday:    time.Monday,
		NthWeekday: 2,
		calc:       CalcNthWeekday,
	}
	// Health and Sports Day 2020 - Changed for Tokyo Olympics - 24-Jul-2020
	HealthAndSportsDay2020 = &Holiday{
		Name:   "Health and Sports Day",
		Month:  time.July,
		Day:    24,
		OnYear: 2020,
		calc:   CalcDayOfMonth,
	}
	// Health and Sports Day 2021 - Changed for Tokyo Olympics (2020 postponed) - 23-Jul-2021
	HealthAndSportsDay2021 = &Holiday{
		Name:   "Health and Sports Day",
		Month:  time.July,
		Day:    23,
		OnYear: 2021,
		calc:   CalcDayOfMonth,
	}
	// Culture Day - Bunka no hi - 文化の日 - 3-Nov
	CultureDay = &Holiday{
		Name:  "Culture Day",
		Month: time.November,
		Day:   3,
		calc:  CalcDayOfMonth,
	}
	// Labor Thanksgiving Day - Kinrō Kansha no hi - 勤労感謝の日 - 23-Nov
	LaborThanksgivingDay = &Holiday{
		Name:  "Labor Thanksgiving Day",
		Month: time.November,
		Day:   23,
		calc:  CalcDayOfMonth,
	}
	// Emperor Akihito's Birthday - Tennō tanjōbi - 天皇誕生日 - 23-Dec before 30-Apr-2019
	EmperorAkihitoBirthday = &Holiday{
		Name:       "Emperor Akihito's Birthday",
		Month:      time.December,
		Day:        23,
		BeforeYear: 2019,
		calc:       CalcDayOfMonth,
	}
	// Emperor Naruhito's Birthday - Tennō tanjōbi - 天皇誕生日 - 23-Feb before 30-Apr-2019
	EmperorNaruhitoBirthday = &Holiday{
		Name:      "Emperor Naruhito's Birthday",
		Month:     time.February,
		Day:       23,
		AfterYear: 2020,
		calc:      CalcDayOfMonth,
	}

	// Emperor Akihito's Abdication Day - Taiirei-Seiden-no-gi - 退位礼正殿の儀 - 30-Apr-2019
	AbdicationDay = &Holiday{
		Name:   "Emperor Akihito's Abdication Day",
		Month:  time.April,
		Day:    30,
		OnYear: 2019,
		calc:   CalcDayOfMonth,
	}
	// Beginning of the Reiwa era and accession date of Emperor Naruhito - 1-May-2019
	AccessionDay = &Holiday{
		Name:   "Naruhito's Accession Day",
		Month:  time.May,
		Day:    1,
		OnYear: 2019,
		calc:   CalcDayOfMonth,
	}
	// Accession Citizen's Holiday - 2-May-2019
	AccessionCitizensHoliday = &Holiday{
		Name:   "Accession Citizen's Holiday",
		Month:  time.May,
		Day:    2,
		OnYear: 2019,
		calc:   CalcDayOfMonth,
	}
	// Enthronement Ceremony - Sokuirei-Seiden-no-gi - 即位礼正殿の儀 - 22-Oct-2019
	EnthronementCeremony = &Holiday{
		Name:   "Enthronement Ceremony",
		Month:  time.October,
		Day:    22,
		OnYear: 2019,
		calc:   CalcDayOfMonth,
	}
	// Silver Week Citizen's Holidays on 22nd of September
	SilverWeekCitizensHoliday = &Holiday{
		Name:   "Silver Week Citizen's Holidays",
		Month:  time.September,
		Day:    22,
		OnYear: 2009,
		calc:   CalcDayOfMonth,
	}
	// Silver Week Citizen's Holidays on 21st of September
	SilverWeekCitizensHoliday21 = &Holiday{
		Name:   "Silver Week Citizen's Holidays on the 21st",
		Month:  time.September,
		Day:    21,
		OnYear: 2032,
		calc:   CalcDayOfMonth,
	}
	SilverWeekCitizensHolidays = []*Holiday{
		SilverWeekCitizensHoliday,
		SilverWeekCitizensHoliday.Copy().SetOnYear(2015),
		SilverWeekCitizensHoliday.Copy().SetOnYear(2020),
		SilverWeekCitizensHoliday.Copy().SetOnYear(2026),
		SilverWeekCitizensHoliday21,
		SilverWeekCitizensHoliday.Copy().SetOnYear(2037),
		SilverWeekCitizensHoliday.Copy().SetOnYear(2043),
		SilverWeekCitizensHoliday21.Copy().SetOnYear(2049),
		SilverWeekCitizensHoliday.Copy().SetOnYear(2054),
		SilverWeekCitizensHoliday21.Copy().SetOnYear(2060),
		SilverWeekCitizensHoliday.Copy().SetOnYear(2071),
		SilverWeekCitizensHoliday21.Copy().SetOnYear(2077),
		SilverWeekCitizensHoliday21.Copy().SetOnYear(2088),
		SilverWeekCitizensHoliday21.Copy().SetOnYear(2094),
		SilverWeekCitizensHoliday.Copy().SetOnYear(2099),
	}
)
View Source
var (
	// Bastille Day - 14-Jul
	BastilleDay = &Holiday{
		Name:  "Bastille Day",
		Month: time.July,
		Day:   14,
		calc:  CalcDayOfMonth,
	}
)
View Source
var (
	// Belgium Independence Day - 21-Jul
	BelgiumIndependenceDay = &Holiday{
		Name:  "Belgium Independence Day",
		Month: time.July,
		Day:   21,
		calc:  CalcDayOfMonth,
	}
)
View Source
var (
	// Hong Kong Special Administrative Region Establishment Day - 香港特別行政區成立紀念日 - 1st of Jul
	EstablishmentDay = &Holiday{
		Name:  "Hong kong Establishment Day",
		Month: time.July,
		Day:   1,
		calc:  CalcDayOfMonth,
	}
)

Hong kong Holidays * https://www.hkex.com.hk/News/HKEX-Calendar?sc_lang=en

View Source
var (
	// German Unity Day - 3-Oct
	GermanUnityDay = &Holiday{
		Name:  "German Unity Day",
		Month: time.October,
		Day:   3,
		calc:  CalcDayOfMonth,
	}
)
View Source
var LilianDate = time.Date(1582, 10, 15, 0, 0, 0, 0, time.UTC)

Gregorian calendar start date

View Source
var (
	// Koninginnedag (Koningsdag King's day since 2013) - 30-Apr
	QueensDay = &Holiday{
		Name:  "Queen's Day",
		Month: time.April,
		Day:   30,
		calc:  CalcDayOfMonth,
	}
)
View Source
var (
	// Singapore National Day - 9th of Aug
	SingaporeNationalDay = &Holiday{
		Name:  "Singapore National Day ",
		Month: time.August,
		Day:   9,
		calc:  CalcDayOfMonth,
	}
)

Singapore Holidays

Functions

func BOD

func BOD(t time.Time) time.Time

Beginning Of Day is the first time of that day

func CalcDayOfMonth

func CalcDayOfMonth(h *Holiday, year int, loc *time.Location) time.Time

Day of month in Gregorian Calendar, -1 means last day of the month

func CalcEasterOffset

func CalcEasterOffset(h *Holiday, year int, loc *time.Location) time.Time

Easter sunday

func CalcHijriDayOfMonth

func CalcHijriDayOfMonth(h *Holiday, year int, loc *time.Location) time.Time

Day of month in Hijri Calendar, -1 means last day of the month

func CalcLunisolarDayOfMonth

func CalcLunisolarDayOfMonth(h *Holiday, year int, loc *time.Location) time.Time

Day of month in Lunisolar Calendar, -1 means last day of the month

func CalcNorthernSolstice

func CalcNorthernSolstice(h *Holiday, year int, loc *time.Location) time.Time

June Solstice

func CalcNorthwardEquinox

func CalcNorthwardEquinox(h *Holiday, year int, loc *time.Location) time.Time

March Equinox

func CalcNthWeekday

func CalcNthWeekday(h *Holiday, year int, loc *time.Location) time.Time

Nth occurrence of a weekday like 3rd monday, -1 means last monday of the month

func CalcSouthernSolstice

func CalcSouthernSolstice(h *Holiday, year int, loc *time.Location) time.Time

December Solstice

func CalcSouthwardEquinox

func CalcSouthwardEquinox(h *Holiday, year int, loc *time.Location) time.Time

September Equinox

func EOD

func EOD(t time.Time) time.Time

End Of Day is the last time of that day

func Easter

func Easter(year int) (day int, month time.Month)

year -> day and month of Easter

func GetLeapMonth

func GetLeapMonth(year int) int

The leap month of a year (0 if none)

func GetLunisolarMonthDays

func GetLunisolarMonthDays(year int, month time.Month, leapMonth bool) int

Get the number of days in a lunar month

func GetMonthDays

func GetMonthDays(year int, month time.Month) int

Year, Month -> number of days in the month

func GetYearDays

func GetYearDays(year int) int

Get the number of days in the Gregorian calendar year

func GregorianToHijri

func GregorianToHijri(t time.Time) time.Time

Gregorian calendar Time -> Hijri calendar Time

func GregorianToJulian

func GregorianToJulian(t time.Time) time.Time

Gregorian calendar Time -> Julian calendar Time

func GregorianToLunisolar

func GregorianToLunisolar(t time.Time) (time.Time, bool)

Gregorian calendar -> Lunisolar calendar

func GtoJDN

func GtoJDN(t time.Time) int

Gregorian calendar time -> Julian Day Number

func HijriToGregorian

func HijriToGregorian(t time.Time) time.Time

Hijri calendar Time -> Gregorian calendar Time

func HijriYear

func HijriYear(gy int) int

Gregorian Year -> Hijri Year

func HtoJDN

func HtoJDN(t time.Time) int

Hijri calendar time -> Julian Day Number

func IsJulianLeapYear

func IsJulianLeapYear(year int) bool

Is a Leap Year in the Julian calendar

func IsLeapYear

func IsLeapYear(year int) bool

Is a Leap Year in the Gregorian calendar

func IsWeekend

func IsWeekend(t time.Time) bool

func JDNtoG

func JDNtoG(jd int, loc ...*time.Location) time.Time

Julian Day Number -> Gregorian calendar time (UTC default loc if not provided)

func JDNtoH

func JDNtoH(jd int, loc ...*time.Location) time.Time

Julian Day Number -> Hijri calendar time (UTC default loc if not provided)

func JDNtoJ

func JDNtoJ(jd int, loc ...*time.Location) time.Time

Julian Day Number -> Julian calendar time (UTC default loc if not provided)

func JtoJDN

func JtoJDN(t time.Time) int

Julian calendar time -> Julian Day Number

func JulianToGegorian

func JulianToGegorian(t time.Time) time.Time

Julian calendar Time -> Gregorian calendar Time

func LunisolarToGregorian

func LunisolarToGregorian(t time.Time, leap bool) time.Time

Lunisolar calendar -> Gregorian calendar

func NthWeekday

func NthWeekday(year int, month time.Month, weekday time.Weekday, n int, loc *time.Location) time.Time

Nth occurrence of a weekday like 3rd monday

func YearInRange

func YearInRange(year int, yearRange []int) bool

func YearRange

func YearRange(start, end int) []int

Types

type Calendar

type Calendar struct {
	Name string
	Loc  *time.Location // NewYork or time.LoadLocation("America/New_York")
	// contains filtered or unexported fields
}

func BVMF

func BVMF(years ...int) *Calendar

Brasilian Stock Exchange - Bolsa de Valores, Mercados e Futuros

func GetCalendar

func GetCalendar(name string, years ...int) *Calendar

func NewCalendar

func NewCalendar(name string, loc *time.Location, years ...int) *Calendar

func XAMS

func XAMS(years ...int) *Calendar

Euronext Amsterdam

func XASX

func XASX(years ...int) *Calendar

Australian Securities Exchange

func XBKK

func XBKK(years ...int) *Calendar

Stock Exchange of Thailand

func XBOM

func XBOM(years ...int) *Calendar

Bombay Stock Exchange

func XBRU

func XBRU(years ...int) *Calendar

Euronext Brussels

func XCBF

func XCBF(years ...int) *Calendar

Cboe Futures Exchange

func XCBO

func XCBO(years ...int) *Calendar

Chicago Board Options Exchange

func XETR

func XETR(years ...int) *Calendar

Deutsche Borse Xetra

func XFRA

func XFRA(years ...int) *Calendar

Frankfurt Stock Exchange

func XHKG

func XHKG(years ...int) *Calendar

Stock Exchange of Hong Kong

func XJPX

func XJPX(years ...int) *Calendar

Japan Exchange Group

func XKRX

func XKRX(years ...int) *Calendar

Korea Exchange

func XLIS

func XLIS(years ...int) *Calendar

Euronext Lisbon

func XLON

func XLON(years ...int) *Calendar

London Stock Exchange

func XMAD

func XMAD(years ...int) *Calendar

Madrid Stock Exchange

func XMEX

func XMEX(years ...int) *Calendar

Mexican Stock Exchange

func XMIL

func XMIL(years ...int) *Calendar

Euronext Milan - Borsa Italiana S.P.A

func XNAS

func XNAS(years ...int) *Calendar

NASDAQ

func XNYS

func XNYS(years ...int) *Calendar

New York Stock Exchange

func XPAR

func XPAR(years ...int) *Calendar

Euronext Paris

func XSES

func XSES(years ...int) *Calendar

Singapore Exchange (SGX)

func XSHE

func XSHE(years ...int) *Calendar

Shenzhen Stock Exchange

func XSHG

func XSHG(years ...int) *Calendar

Shanghai Stock Exchange

func XSWX

func XSWX(years ...int) *Calendar

SIX Group (SWX Swiss Exchange)

func XTSE

func XTSE(years ...int) *Calendar

Toronto Stock Exchange

func (*Calendar) AddEarlyClosingDays

func (c *Calendar) AddEarlyClosingDays(h ...*Holiday)

func (*Calendar) AddHolidays

func (c *Calendar) AddHolidays(h ...*Holiday)

func (*Calendar) HasHoliday

func (c *Calendar) HasHoliday(h *Holiday) bool

func (*Calendar) IsBusinessDay

func (c *Calendar) IsBusinessDay(t time.Time) bool

func (*Calendar) IsEarlyClose

func (c *Calendar) IsEarlyClose(t time.Time) bool

func (*Calendar) IsHoliday

func (c *Calendar) IsHoliday(t time.Time) bool

func (*Calendar) IsOpen

func (c *Calendar) IsOpen(t time.Time) bool

func (*Calendar) NextBusinessDay

func (c *Calendar) NextBusinessDay(t time.Time) time.Time

func (*Calendar) NextClose

func (c *Calendar) NextClose(t time.Time) time.Time

func (*Calendar) NextHoliday

func (c *Calendar) NextHoliday(t time.Time) (time.Time, *Holiday)

func (*Calendar) Session

func (c *Calendar) Session() *Session

early, core and late Sessions

func (*Calendar) SetSession

func (c *Calendar) SetSession(s *Session)

early, core and late Sessions

func (*Calendar) SetYears

func (c *Calendar) SetYears(start, end int)

func (*Calendar) String

func (c *Calendar) String() string

func (*Calendar) Years

func (c *Calendar) Years() (start, end int)

type Holiday

type Holiday struct {
	Name       string
	OnYear     int        // Used if holiday occures only on specific year
	BeforeYear int        // Used if holiday occures before a specific year
	AfterYear  int        // Used if holiday occures after or on a specific year
	Month      time.Month // Gregorian month also used for lunar month
	Day        int
	Weekday    time.Weekday
	NthWeekday int
	Offset     int

	Observance observance
	// contains filtered or unexported fields
}

func (*Holiday) AddOffset

func (h *Holiday) AddOffset(o int) *Holiday

func (*Holiday) Calc

func (h *Holiday) Calc(year int, loc *time.Location) time.Time

Calculate the holiday time.Time for a given year

func (Holiday) Copy

func (h Holiday) Copy(name ...string) *Holiday

Copy holiday. Always set observance on a copy.

func (*Holiday) SetAfterYear

func (h *Holiday) SetAfterYear(year int) *Holiday

func (*Holiday) SetBeforeYear

func (h *Holiday) SetBeforeYear(year int) *Holiday

func (*Holiday) SetObservance

func (h *Holiday) SetObservance(o observance) *Holiday

func (*Holiday) SetOffset

func (h *Holiday) SetOffset(o int) *Holiday

func (*Holiday) SetOnYear

func (h *Holiday) SetOnYear(year int) *Holiday

type Session

type Session struct {
	EarlyOpen  time.Duration
	Open       time.Duration
	BreakStart time.Duration
	BreakStop  time.Duration
	Close      time.Duration
	EarlyClose time.Duration
	LateClose  time.Duration
}

func (*Session) HasBreak

func (s *Session) HasBreak() bool

func (Session) IsZero

func (s Session) IsZero() bool

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL