golang array time.Time find between time index
时间: 2023-07-10 11:10:38 浏览: 200
你可以使用一个循环来遍历数组中的每个元素,并使用time.Time的`Before()`和`After()`方法来检查每个元素是否在指定时间范围内。以下是一个示例代码:
```go
package main
import (
"fmt"
"time"
)
func main() {
arr := []time.Time{
time.Date(2021, 1, 1, 12, 0, 0, 0, time.UTC),
time.Date(2021, 1, 2, 12, 0, 0, 0, time.UTC),
time.Date(2021, 1, 3, 12, 0, 0, 0, time.UTC),
time.Date(2021, 1, 4, 12, 0, 0, 0, time.UTC),
time.Date(2021, 1, 5, 12, 0, 0, 0, time.UTC),
}
start := time.Date(2021, 1, 2, 0, 0, 0, 0, time.UTC)
end := time.Date(2021, 1, 4, 0, 0, 0, 0, time.UTC)
for i, t := range arr {
if !t.Before(start) && !t.After(end) {
fmt.Printf("Index %d: %v\n", i, t)
}
}
}
```
在上面的示例中,我们定义了一个包含5个`time.Time`值的数组,并指定了一个起始时间和结束时间。然后,我们使用一个循环来遍历数组中的每个元素,并使用`Before()`和`After()`方法来检查每个元素是否在指定时间范围内。如果元素在范围内,我们就打印出该元素的索引和值。
注意,我们在这里使用`!t.Before(start)`和`!t.After(end)`来检查`time.Time`是否在指定时间范围内。这是因为`Before()`和`After()`方法返回一个布尔值,表示时间是否在指定时间之前或之后。所以我们需要使用`!`运算符将其取反,以确保时间在范围内。
阅读全文