holiday

package
v0.0.0-...-38bdce8 Latest Latest
Warning

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

Go to latest
Published: Feb 17, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package holiday 实现中国假期和调休统计逻辑。仅准确支持 2024 年及以后。

Index

Constants

View Source
const (
	// Weekday 等同于 Workday
	Weekday = Workday
)

Variables

This section is empty.

Functions

func AddNewDayType

func AddNewDayType(typ DayType, description string)

AddNewDayType 添加一个新的日期类型。注意, 不允许重复添加, 如果这个类型已经添加过, 则 panic

func AddSpecialDay

func AddSpecialDay(d Day, typ DayType, description string)

AddSpecialDay 添加一个特殊日期

func BeijingZone

func BeijingZone() *time.Location

BeijingZone 返回北京时区

Types

type Day

type Day struct {
	time.Time
}

Day 表示一天

func Date

func Date[T Integer](year int, month T, day int) Day

Date 表示某一天

func DayFromTime

func DayFromTime(tm time.Time) Day

DayFromTime 从时间构建一个 Day 类型。注意, 会转为北京时间

func DayOfTime

func DayOfTime(tm time.Time) Day

DayOfTime 从一个时间提取出日期

func Today

func Today() Day

Today 表示今天

func (Day) AddDate

func (d Day) AddDate(years, months, days int) Day

AddDate 重载 time.Time 的 AddDate 方法, 但返回 holiday.Day 类型

func (Day) AddWorkday

func (d Day) AddWorkday(days int) Day

AddWorkday 增加指定天数的工作日, 如果遇到节假日则跳过。如果给定的时间是一个休息日, 则会顺延到下一个工作日开始计算。

注意, 这个方法是 O(N) 的简易封装, 所以请勿传入太大的值

func (Day) Description

func (d Day) Description() string

Description 描述, 比如: 工作日 / 周末 / 国庆调休放假 / 国庆调休上班

func (Day) IsRestDay

func (d Day) IsRestDay() bool

IsRestDay 判断给定的时间是否是休息日, 囊括了 Weekend、Holiday、HolidayPeriod、ShiftedDayOff。 但是请注意, 不包括自定义的类型

func (Day) String

func (d Day) String() string

func (Day) Type

func (d Day) Type() DayType

Type 返回这一天的类型

type DayType

type DayType int

DayType 表示这一天所属的类型

const (
	UnknownType DayType = iota
	// 普通的工作日
	Workday
	// 普通的周末, 正常放假
	Weekend
	// 法定节日当天
	Holiday
	// 法定节日假期, 但不是法定节日当天
	HolidayPeriod
	// 某一天按照日历是工作日, 但因为调休, 变成了休息日
	ShiftedDayOff
	// 某一天按照日历是周末, 但因为调休, 变成了工作日
	ShiftedWorkday
)

func (DayType) String

func (t DayType) String() string

type Integer

type Integer interface {
	~int | ~uint |
		~int8 | ~int16 | ~int32 | ~int64 |
		~uint8 | ~uint16 | ~uint32 | ~uint64
}

Integer 表示任意整数

Jump to

Keyboard shortcuts

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