乐趣区

关于go:Golang-遍历日期参数开始日期和结束日期

输出:

  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
 
}

https://blog.csdn.net/weixin_…

退出移动版