53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
/**
|
|
* @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
|
|
}
|