| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package openTime
- import (
- "fmt"
- "strings"
- ctime "github.com/cherry-game/cherry/extend/time"
- )
- type (
- fixedRangeParser struct{}
- fixedRange struct {
- startTime ctime.CherryTime
- endTime ctime.CherryTime
- }
- )
- // 20230101/12:00-20230501/24:00
- func (p *fixedRangeParser) Parse(params string) (OpenTime, error) {
- ts := strings.Split(params, "-")
- if len(ts) < 2 {
- return nil, fmt.Errorf("nonsupport params: %s", params)
- }
- startTime, err := parseDateTime(ts[0])
- if err != nil {
- return nil, err
- }
- endTime, err := parseDateTime(ts[1])
- if err != nil {
- return nil, err
- }
- openTime := &fixedRange{
- startTime: startTime,
- endTime: endTime,
- }
- return openTime, nil
- }
- func (p *fixedRange) Between(t *ctime.CherryTime) bool {
- return t.After(p.startTime.Time) && t.Before(p.endTime.Time)
- }
- func (p *fixedRange) TimeRange(t *ctime.CherryTime) (ctime.CherryTime, ctime.CherryTime) {
- return p.startTime, p.endTime
- }
|