package main_test import ( "fmt" "github.com/gogf/gf/os/gtime" "testing" "time" ) func Test_GetTime(t *testing.T) { //year, _, day := gtime.Now().Date() //month := gtime.Now().Month() //weekday := gtime.Now().Weekday().String() toTime, _ := gtime.StrToTime("2021-09-24", "Y-m-d") date := toTime.AddDate(0, 0, 6-1) year, _, day := toTime.Date() month := toTime.Month() weekday := toTime.Weekday().String() week := 0 saturday := 0 sunday := 0 startTimeStr := "0000-01-01 08:00:00" startTime, _ := gtime.StrToTime(startTimeStr) startTime.Hour() startTime.Minute() endTimeStr := "0000-01-01 18:00:00" endTime, _ := gtime.StrToTime(endTimeStr) endTime.Hour() endTime.Minute() timeLong := endTime.Sub(startTime).Hours() //fmt.Println("总时长:", timeLong) grids := int(timeLong * 2) switch weekday { case "Monday": week, saturday, sunday = 1, day + 5, day + 6 case "Tuesday": week, saturday, sunday = 2, day + 4, day + 5 case "Wednesday": week, saturday, sunday = 3, day + 3, day + 4 case "Thursday": week, saturday, sunday = 4, day + 2, day + 3 case "Friday": week, saturday, sunday = 5, day + 1, day + 2 case "Saturday": week, saturday, sunday = 6, day + 0, day + 1 case "Sunday": week, saturday, sunday = 7, day - 1, day } for i := 0; i < grids; i++ { // 开始时间 start_time := startTime.Add(time.Duration(i) * 30 * time.Minute) sday := saturday suday := sunday status := 1 fmt.Println("date:", date, "day:", sday, "week:", 6, "start_time", fmt.Sprintf("%02d", start_time.Hour()) + ":"+fmt.Sprintf("%02d", start_time.Minute()), "status:", status) fmt.Println("day:", suday, "week:", 7, "start_time", fmt.Sprintf("%02d", start_time.Hour()) + ":"+fmt.Sprintf("%02d", start_time.Minute()), "status:", status) } fmt.Println(year, month, day, weekday, week, saturday, sunday, timeLong) }