From a1d4bd0b7d6b18887b9d6a301d3cef9379d25cbb Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Wed, 28 Jun 2023 10:35:13 +0800 Subject: [PATCH] =?UTF-8?q?recessive:=20=E6=9B=B4=E5=A4=9A=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E3=80=81=E6=97=B6=E9=97=B4=E6=AE=B5=E8=BE=85?= =?UTF-8?q?=E5=8A=A9=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/times/helper.go | 5 +++++ utils/times/period.go | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/utils/times/helper.go b/utils/times/helper.go index 4362cc2..5a3da4f 100644 --- a/utils/times/helper.go +++ b/utils/times/helper.go @@ -110,3 +110,8 @@ func GetTimeFromString(timeStr, layout string) time.Time { t, _ := time.ParseInLocation(layout, timeStr, time.Local) return t } + +// GetDayZero 获取 t 增加 day 天后的零点时间 +func GetDayZero(t time.Time, day int) time.Time { + return GetToday(t.AddDate(0, 0, day)) +} diff --git a/utils/times/period.go b/utils/times/period.go index 5c86e89..ee9d2b1 100644 --- a/utils/times/period.go +++ b/utils/times/period.go @@ -16,6 +16,46 @@ func NewPeriodWithTimeArray(times [2]time.Time) Period { 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 表示一个时间段 type Period [2]time.Time