package utils import "time" //获取下周周四 func GetNextWeekThursday(t time.Time, fmtStr string) (day string, err error) { monday := getMondayOfWeek(t, fmtStr) dayObj, err := time.Parse(fmtStr, monday) if err != nil { return } day = dayObj.AddDate(0, 0, 10).Format(fmtStr) return } //获取下周周三 func GetNextNextWeekWednesday(t time.Time, fmtStr string) (day string, err error) { monday := getMondayOfWeek(t, fmtStr) dayObj, err := time.Parse(fmtStr, monday) if err != nil { return } day = dayObj.AddDate(0, 0, 15).Format(fmtStr) return } func getMondayOfWeek(t time.Time, fmtStr string) (dayStr string) { dayObj := getZeroTime(t) if t.Weekday() == time.Monday { //修改hour、min、sec = 0后格式化 dayStr = dayObj.Format(fmtStr) } else { offset := int(time.Monday - t.Weekday()) if offset > 0 { offset = -6 } dayStr = dayObj.AddDate(0, 0, offset).Format(fmtStr) } return } //获取某一天的0点时间 func getZeroTime(t time.Time) time.Time { return time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location()) }