首页 > 解决方案 > for 循环 while time.Now() 到达

问题描述

在Golang中是否可以通过给定的日期变量在for循环中增加一个日期,直到它达到当前日期/时间。Now()

// Start date
t, _ := time.Parse(time.RFC3339, "2018-07-19T12:25:10.8584224+02:00")

// Current date
ct := time.Now()

for d := t; d.Day() == ct.Day(); d = d.AddDate(0, 0, 1) {
    // Print all days between start date and current date 
    fmt.Println(d)
}

我希望变量 d 打印出所有日期(包括时间等),直到它到达当前日期

标签: go

解决方案


得到正确的循环条件和..

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println("Hello, playground")
    t, _ := time.Parse(time.RFC3339, "2018-07-19T12:25:10.8584224+02:00")

    // Current date
    ct := time.Now()

    for d := t; d.Day() >= ct.Day(); d = d.AddDate(0, 0, 1) {
        // Print all days between start date and current date
        fmt.Println(d)
    }
}

Hello, playground
2018-07-19 12:25:10.8584224 +0200 +0200
2018-07-20 12:25:10.8584224 +0200 +0200
2018-07-21 12:25:10.8584224 +0200 +0200
2018-07-22 12:25:10.8584224 +0200 +0200
2018-07-23 12:25:10.8584224 +0200 +0200
2018-07-24 12:25:10.8584224 +0200 +0200
2018-07-25 12:25:10.8584224 +0200 +0200
2018-07-26 12:25:10.8584224 +0200 +0200
2018-07-27 12:25:10.8584224 +0200 +0200
2018-07-28 12:25:10.8584224 +0200 +0200
2018-07-29 12:25:10.8584224 +0200 +0200
2018-07-30 12:25:10.8584224 +0200 +0200
2018-07-31 12:25:10.8584224 +0200 +0200

https://play.golang.org/p/yRBTUZKfseG


推荐阅读