输入:

  1. 开始日期 结束日期 格式:"2006-01-02"
  2. 时间间隔 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
 
}