package home import ( "fmt" "testing" "time" ) func TestInsertGoal(t *testing.T) { //now:= now := time.Now() // 获取本月的第一天 firstOfMonth := time.Date(now.Year(), 2, 1, 0, 0, 0, 0, now.Location()) // 获取本月的最后一天 lastOfMonth := firstOfMonth.AddDate(0, 1, -1) fmt.Println("本月的开始日期:", firstOfMonth.Format("2006-01-02")) fmt.Println("本月的结束日期:", lastOfMonth.Format("2006-01-02")) } // ////判断时间是当年的第几周 //// //func WeekByDate(t time.Time) string { // // 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 // Weeks := WeekByDates() // if yearDay <= firstWeekDays { // // week = 1 // // } else { // // week = (yearDay-firstWeekDays)/7 + 2 // // } // // return fmt.Sprintf("%d第%d周", t.Year(), week-gconv.Int(Weeks)+1) // //} //func WeekByDates() int { // l, _ := time.LoadLocation("Asia/Shanghai") // now := time.Now() // // 获取本月的第一天 // firstOfMonth := time.Date(now.Year(), now.Month(), 1, 0, 0, 0, 0, now.Location()) // endTime, _ := time.ParseInLocation("2006-01-02", firstOfMonth.Format("2006-01-02"), l) // t := endTime // 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 // //} // //type WeekDate struct { // WeekTh string // // StartTime time.Time // // EndTime time.Time //} // //// 将开始时间和结束时间分割为周为单位 // //func GroupByWeekDate(startTime, endTime time.Time) []WeekDate { // // weekDate := make([]WeekDate, 0) // // diffDuration := endTime.Sub(startTime) // // days := int(math.Ceil(float64(diffDuration/(time.Hour*24)))) + 1 // // currentWeekDate := WeekDate{} // // currentWeekDate.WeekTh = WeekByDate(endTime) // // currentWeekDate.EndTime = endTime // // currentWeekDay := int(endTime.Weekday()) // // if currentWeekDay == 0 { // // currentWeekDay = 7 // // } // // currentWeekDate.StartTime = endTime.AddDate(0, 0, -currentWeekDay+1) // // nextWeekEndTime := currentWeekDate.StartTime // // weekDate = append(weekDate, currentWeekDate) // // for i := 0; i < (days-currentWeekDay)/7; i++ { // // weekData := WeekDate{} // // weekData.EndTime = nextWeekEndTime // // weekData.StartTime = nextWeekEndTime.AddDate(0, 0, -7) // // weekData.WeekTh = WeekByDate(weekData.StartTime) // // nextWeekEndTime = weekData.StartTime // // weekDate = append(weekDate, weekData) // // } // // if lastDays := (days - currentWeekDay) % 7; lastDays > 0 { // // lastData := WeekDate{} // // lastData.EndTime = nextWeekEndTime // // lastData.StartTime = nextWeekEndTime.AddDate(0, 0, -lastDays) // // lastData.WeekTh = WeekByDate(lastData.StartTime) // // weekDate = append(weekDate, lastData) // // } // // return weekDate // //}