base

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

View Source
const DateLayout = "2006-01-02"

Variables

This section is empty.

Functions

func NewDateOutOfRangeError

func NewDateOutOfRangeError() error

func NewInvalidDateFormatError

func NewInvalidDateFormatError() error

func NewInvalidDateRangeError

func NewInvalidDateRangeError() error

func NewInvalidOffsetError

func NewInvalidOffsetError() error

func NewUnsupportedCalendarError

func NewUnsupportedCalendarError() error

Types

type Calendar

type Calendar interface {
	// IsTradeDay 判断给定日期是否为交易日。
	// day 进入实现后会先被规范化。
	// 当日期格式非法或超出该日历支持范围时,返回 error。
	IsTradeDay(day Date) (bool, error)

	// PrevTradeDay 返回给定日期的前一个交易日。
	// day 进入实现后会先被规范化,且本身不必是交易日。
	PrevTradeDay(day Date) (Date, error)

	// NextTradeDay 返回给定日期的后一个交易日。
	// day 进入实现后会先被规范化,且本身不必是交易日。
	NextTradeDay(day Date) (Date, error)

	// OffsetTradeDay 返回交易日偏移结果。
	// offset > 0 时,返回 day 之后的第 offset 个交易日,不包含 day 当天。
	// offset < 0 时,返回 day 之前的第 -offset 个交易日,不包含 day 当天。
	// offset == 0 时,仅当 day 当天是交易日时返回 day,否则返回 error。
	// day 进入实现后会先被规范化,且本身不必是交易日。
	OffsetTradeDay(day Date, offset int) (Date, error)

	// ListTradeDays 返回闭区间 [start, end] 内的交易日列表。
	// start 和 end 进入实现后都会先被规范化。
	// start 和 end 的 Location 必须一致。
	// 当日期格式非法、日期区间非法或超出该日历支持范围时,返回 error。
	ListTradeDays(start, end Date) ([]Date, error)
}

Calendar 表示某一类市场的交易日历。 所有日期参数都必须使用 2006-01-02 格式。

type CalendarDate

type CalendarDate struct {
	// contains filtered or unexported fields
}

CalendarDate 是日历内部使用的日期载体。 它同时保留规范化后的日期字符串和解析后的 time.Time, 方便后续业务逻辑按需直接取用。

func NewCalendarDateFromTime

func NewCalendarDateFromTime(day time.Time) *CalendarDate

func (*CalendarDate) AddDays

func (day *CalendarDate) AddDays(days int) *CalendarDate

AddDays 返回增加或减少指定天数后的新日期。

func (*CalendarDate) Date

func (day *CalendarDate) Date() Date

func (*CalendarDate) IsSupportedYear

func (day *CalendarDate) IsSupportedYear(minYear, maxYear int) bool

func (*CalendarDate) IsWeekend

func (day *CalendarDate) IsWeekend() bool

func (*CalendarDate) Time

func (day *CalendarDate) Time() time.Time

type Date

type Date string

Date 表示一个日期字符串,固定格式为 2006-01-02。

func (Date) ToCalendarDate

func (day Date) ToCalendarDate(location *time.Location) (*CalendarDate, error)

ToCalendarDate 对日期做预检查并转换为内部日期对象。

type Error

type Error string

Error 是本项目唯一公开错误类型。

const (
	ErrorUnsupportedCalendar Error = "unsupported_calendar"
	ErrorDateOutOfRange      Error = "date_out_of_range"
	ErrorInvalidDateRange    Error = "invalid_date_range"
	ErrorInvalidOffset       Error = "invalid_offset"
	ErrorInvalidDateFormat   Error = "invalid_date_format"
)

func (Error) Error

func (e Error) Error() string

func (Error) IsDateOutOfRange

func (e Error) IsDateOutOfRange() bool

func (Error) IsInvalidDateFormat

func (e Error) IsInvalidDateFormat() bool

func (Error) IsInvalidDateRange

func (e Error) IsInvalidDateRange() bool

func (Error) IsInvalidOffset

func (e Error) IsInvalidOffset() bool

func (Error) IsUnsupportedCalendar

func (e Error) IsUnsupportedCalendar() bool

Jump to

Keyboard shortcuts

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