recessive: 更多的时间、时间段辅助函数

This commit is contained in:
kercylan98 2023-06-28 10:35:13 +08:00
parent a6ca8a9f9e
commit a1d4bd0b7d
2 changed files with 45 additions and 0 deletions

View File

@ -110,3 +110,8 @@ func GetTimeFromString(timeStr, layout string) time.Time {
t, _ := time.ParseInLocation(layout, timeStr, time.Local) t, _ := time.ParseInLocation(layout, timeStr, time.Local)
return t return t
} }
// GetDayZero 获取 t 增加 day 天后的零点时间
func GetDayZero(t time.Time, day int) time.Time {
return GetToday(t.AddDate(0, 0, day))
}

View File

@ -16,6 +16,46 @@ func NewPeriodWithTimeArray(times [2]time.Time) Period {
return NewPeriod(times[0], times[1]) return NewPeriod(times[0], times[1])
} }
// NewPeriodWithDayZero 创建一个时间段,从 t 开始,持续到 day 天后的 0 点
func NewPeriodWithDayZero(t time.Time, day int) Period {
return NewPeriod(t, GetToday(t.AddDate(0, 0, day)))
}
// NewPeriodWithDay 创建一个时间段,从 t 开始,持续 day 天
func NewPeriodWithDay(t time.Time, day int) Period {
return NewPeriod(t, t.AddDate(0, 0, day))
}
// NewPeriodWithHour 创建一个时间段,从 t 开始,持续 hour 小时
func NewPeriodWithHour(t time.Time, hour int) Period {
return NewPeriod(t, t.Add(time.Duration(hour)*time.Hour))
}
// NewPeriodWithMinute 创建一个时间段,从 t 开始,持续 minute 分钟
func NewPeriodWithMinute(t time.Time, minute int) Period {
return NewPeriod(t, t.Add(time.Duration(minute)*time.Minute))
}
// NewPeriodWithSecond 创建一个时间段,从 t 开始,持续 second 秒
func NewPeriodWithSecond(t time.Time, second int) Period {
return NewPeriod(t, t.Add(time.Duration(second)*time.Second))
}
// NewPeriodWithMillisecond 创建一个时间段,从 t 开始,持续 millisecond 毫秒
func NewPeriodWithMillisecond(t time.Time, millisecond int) Period {
return NewPeriod(t, t.Add(time.Duration(millisecond)*time.Millisecond))
}
// NewPeriodWithMicrosecond 创建一个时间段,从 t 开始,持续 microsecond 微秒
func NewPeriodWithMicrosecond(t time.Time, microsecond int) Period {
return NewPeriod(t, t.Add(time.Duration(microsecond)*time.Microsecond))
}
// NewPeriodWithNanosecond 创建一个时间段,从 t 开始,持续 nanosecond 纳秒
func NewPeriodWithNanosecond(t time.Time, nanosecond int) Period {
return NewPeriod(t, t.Add(time.Duration(nanosecond)*time.Nanosecond))
}
// Period 表示一个时间段 // Period 表示一个时间段
type Period [2]time.Time type Period [2]time.Time