base

package
v1.0.3 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 reports whether day is a trading day.
	// day must use the format "2006-01-02", for example "2020-01-01".
	IsTradeDay(day string) (bool, error)

	// PrevTradeDay returns the trading day immediately before day.
	// day must use the format "2006-01-02", for example "2020-01-01".
	PrevTradeDay(day string) (string, error)

	// NextTradeDay returns the trading day immediately after day.
	// day must use the format "2006-01-02", for example "2020-01-01".
	NextTradeDay(day string) (string, error)

	// OffsetTradeDay returns the trading day offset from day by offset trading days.
	// day must use the format "2006-01-02", for example "2020-01-01".
	OffsetTradeDay(day string, offset int) (string, error)

	// ListTradeDays returns all trading days in the inclusive range [start, end].
	// start and end must use the format "2006-01-02", for example "2020-01-01".
	ListTradeDays(start, end string) ([]string, error)
}

Calendar provides trading-day queries for a specific market. All date inputs must use the format "2006-01-02", for example "2020-01-01".

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