/** * @Author Puzzle * @Date 2022/5/20 12:54 下午 **/ package stime import "time" func NowWeekDay() string { var weekday = [7]string{"七", "一", "二", "三", "四", "五", "六"} week := int(time.Now().Weekday()) return weekday[week] } // 获取按年算的周数 func GetYearWeek(t *time.Time) int { yearDay := t.YearDay() yearFirstDay := t.AddDate(0, 0, -yearDay+1) firstDayInWeek := int(yearFirstDay.Weekday()) //今年第一周有几天 firstWeekDays := 1 if firstDayInWeek != 0 { firstWeekDays = 7 - firstDayInWeek + 1 } var week int if yearDay <= firstWeekDays { week = 1 } else { week = (yearDay-firstWeekDays)/7 + 2 } return week } // GetWeekDate 获取基准时间范围最最近的某个星期时间 // // param baseOn: 基准时间 // param weekNum: 中国星期数 1~7 // return *time.Time func GetWeekDate(baseOn time.Time, weekNum int) *time.Time { if baseOn.IsZero() || (weekNum <= 0 || weekNum > 7) { return nil } baseDate := time.Date(baseOn.Year(), baseOn.Month(), baseOn.Day(), 0, 0, 0, 0, Loc.Shanghai()) var ( w = int(baseOn.Weekday()) weekDate time.Time ) weekDate = baseDate.AddDate(0, 0, weekNum-w) return &weekDate }