yinbentan
2024-08-30 cc7c2094568ea8f9d1697da5ed0a2c759ca81abd
pkg/timex/timex.go
@@ -75,3 +75,26 @@
   }
   return day
}
// 获取一个月内的所有星期
func GetWeeksOfMonth(year int, month time.Month) [][]time.Time {
   firstDay := time.Date(year, month, 1, 0, 0, 0, 0, time.Local)
   lastDay := firstDay.AddDate(0, 1, -1) // 下一个月的第一天减一,得到本月的最后一天
   weeks := make([][]time.Time, 0)
   currentWeek := make([]time.Time, 0)
   current := firstDay
   for !current.After(lastDay) {
      currentWeek = append(currentWeek, current)
      current = current.AddDate(0, 0, 1) // 增加一天
      // 如果当前周已经满了7天,或者已经到了月的最后一天,则保存这一周
      if len(currentWeek) == 7 || current.After(lastDay) {
         weeks = append(weeks, currentWeek)
         currentWeek = make([]time.Time, 0) // 重置当前周
      }
   }
   return weeks
}