输入:
- 开始日期 结束日期 格式:"2006-01-02"
- 时间间隔 day/month
输出:一个string array 包含着所有遍历过的时间
day 的话是开始和结束中的所有日期("2022-07-14")
month 则是所有月份("2022-07")
func traverseTime(startDate string, endDate string, interval string) []string {
// layout 日期时间格式
layout := "2006-01-02"
// 首先将startDate和endDate转换为time类型
endTime, _ := time.ParseInLocation(layout, endDate, time.Local)
startTime, _ := time.ParseInLocation(layout, startDate, time.Local)
if interval == "day" {
// dateArray 开始以及结束日期中的所有日期
dateArray := make([]string, 0)
// After 判断时间先后
for endTime.After(startTime) {
dateArray = append(dateArray, startTime.Format("2006-01-02"))
startTime = startTime.AddDate(0, 0, 1)
}
dateArray = append(dateArray, endDate)
return dateArray
}
if interval == "month" {
//monthArray 开始以及结束日期中的所有日期
monthArray := make([]string, 0)
for endTime.After(startTime) {
monthArray = append(monthArray, startTime.Format("2006-01"))
startTime = startTime.AddDate(0, 1, 0)
}
monthArray = append(monthArray, endTime.Format("2006-01"))
return monthArray
}
fmt.Println("Wrong interval")
return nil
}