workalendar

package module
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2021 License: MIT Imports: 2 Imported by: 0

README

Overview

This is currently a work-in-progress. I've used the repo: https://github.com/peopledoc/workalendar as source of holidays.

Workcalendar is a go library that is inteded to handle holidays.

Status

This library is currently being developed.

If you spot any bug or wish to add a calendar, please fill Pull Request.

Usage Examples

Example 1
package main

import (
    "fmt"
	"time"
    //import a country
	"github.com/varrcan/workcalendar/europe/russia"
)

func main() {
    now := time.Now()
    // check whether a day is holiday
    if russia.IsHoliday(now) {
        h, _ := russia.GetHoliday(now)
        fmt.Printf("Holiday is %s", h)
    } else {
        fmt.Print("No holiday today")
    }

    // get holiday name
    march8 := time.Date(2020, time.March, 8, 0, 0, 0, 0, time.UTC)
    h, err := russia.GetHoliday(march8)
    if err != nil {
        fmt.Print("Hm, it is weird")
    } else {
        fmt.Printf("Holiday is %s", h)
    }
}

Example 2
package main

import (
    "fmt"
	"time"
    //import a region
	"github.com/varrcan/workcalendar/europe/spain/catalonia"
)

func main() {
    now := time.Now()
    // check whether a day is holiday
    if catalonia.IsHoliday(now) {
        h, _ := catalonia.GetHoliday(now)
        fmt.Printf("Holiday is %s", h)
    } else {
        fmt.Print("No holiday today")
    }

    // get the holiday name
    march8 := time.Date(2020, time.March, 8, 0, 0, 0, 0, time.UTC)
    h, err := catalonia.GetHoliday(march8)
    if err != nil {
        fmt.Print("Hm, it is weird")
    } else {
        fmt.Printf("Holiday is %s", h)
    }
}

Available Calendars

Europe:
  • Austria
  • Belarus
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Iceland
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Monaco
  • Netherlands
  • Norway
  • Poland
  • Portugal
  • Romania
  • Russia
  • Serbia
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • Switzerland
  • Ukraine
  • United Kingdom

License

This library is published under the terms of the MIT License. Please check the LICENSE file for more details.

Documentation

Index

Constants

View Source
const (
	EasterJulian   easterType = 1
	EasterOrthodox easterType = 2
	EasterWestern  easterType = 3
)

Easter methods

Variables

This section is empty.

Functions

func EasterSunday

func EasterSunday(year int) time.Time

EasterSunday returns easter day

func FindFirstMonday

func FindFirstMonday(date time.Time) time.Time

FindFirstMonday returns the next monday

func FindLastMonday

func FindLastMonday(date time.Time) time.Time

FindLastMonday returns the last monday of month

func FindWorkingDay

func FindWorkingDay(date time.Time) time.Time

FindWorkingDay returns 1st working day (monday)

Types

type CalEvent

type CalEvent struct {
	Name string
}

CalEvent describes holiday

func Event

func Event(name string) *CalEvent

Event returns new CalEvent

func (*CalEvent) String

func (e *CalEvent) String() string

type Calendar

type Calendar struct {
	Days Holidays
	// contains filtered or unexported fields
}

Calendar is a struct that is intended for representing all holidays of country

func NewCalendar

func NewCalendar(holidays Holidays, opts ...CalendarOption) *Calendar

NewCalendar prepares calendar struct

func (*Calendar) CheckHoliday

func (c *Calendar) CheckHoliday(date time.Time) (bool, *CalEvent)

CheckHoliday is intended to determine whether day is holiday

func (*Calendar) GetHoliday

func (c *Calendar) GetHoliday(date time.Time) *CalEvent

GetHoliday is inteded to check whether a day is holiday or not

func (*Calendar) IsHoliday

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

IsHoliday is inteded to check whether a day is holiday or not

func (*Calendar) IsWorkingDay

func (c *Calendar) IsWorkingDay(date time.Time) bool

IsWorkingDay is inteded to check whether a day is working or not

type CalendarOption

type CalendarOption func(*Calendar)

CalendarOption is inteded to be passed to NewCalendar

func EnableOrthodox

func EnableOrthodox() CalendarOption

EnableOrthodox is option implementing orthodox method to calculate easter sunday

func WithAllSaints

func WithAllSaints() CalendarOption

WithAllSaints is option implementing All Saints

func WithAscension

func WithAscension() CalendarOption

WithAscension is option implementing good friday

func WithAssumption

func WithAssumption() CalendarOption

WithAssumption is option implementing Assumption

func WithBoxingDay

func WithBoxingDay() CalendarOption

WithBoxingDay is option implementing boxing day

func WithChristmas

func WithChristmas() CalendarOption

WithChristmas is option implementing christmas

func WithChristmasEve

func WithChristmasEve() CalendarOption

WithChristmasEve is option implementing christmas eve

func WithCleanMonday

func WithCleanMonday() CalendarOption

WithCleanMonday is option implementing clean monday

func WithCorpusChristi

func WithCorpusChristi() CalendarOption

WithCorpusChristi is option implementing Corpus Christi

func WithEasterMonday

func WithEasterMonday() CalendarOption

WithEasterMonday is option implementing easter monday

func WithEasterSaturday

func WithEasterSaturday() CalendarOption

WithEasterSaturday is option implementing easter Saturday

func WithEasterSunday

func WithEasterSunday() CalendarOption

WithEasterSunday is option implementing easter sunday

func WithEasterTuesday

func WithEasterTuesday() CalendarOption

WithEasterTuesday is option implementing easter tuesday

func WithEpiphany

func WithEpiphany() CalendarOption

WithEpiphany is option implementing good friday

func WithGoodFriday

func WithGoodFriday() CalendarOption

WithGoodFriday is option implementing good friday

func WithHolidayFunc

func WithHolidayFunc(additionalHolidaysFunc func(date time.Time) Holidays) CalendarOption

WithHolidayFunc is inteded to add HolidayFunc

func WithHolyThursday

func WithHolyThursday() CalendarOption

WithHolyThursday is option implementing holy thursday

func WithImmaculateConception

func WithImmaculateConception() CalendarOption

WithImmaculateConception is option implementing Immaculate Conception

func WithLabourDay

func WithLabourDay() CalendarOption

WithLabourDay is option implementing labour day

func WithNewYearDay

func WithNewYearDay() CalendarOption

WithNewYearDay is option implementing newyear day

func WithOrthodoxChristmas

func WithOrthodoxChristmas() CalendarOption

WithOrthodoxChristmas is option implementing orthodox christmas

func WithRadonitsa

func WithRadonitsa() CalendarOption

WithRadonitsa is option implementing Radonitsa

func WithWhitMonday

func WithWhitMonday() CalendarOption

WithWhitMonday is option implementing whit monday

func WithWhitSunday

func WithWhitSunday() CalendarOption

WithWhitSunday is option implementing whit sunday

type Holidays

type Holidays map[string]*CalEvent

Holidays is a map to represent events

Directories

Path Synopsis
europe

Jump to

Keyboard shortcuts

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