到目前为止,我已经使用http://golang.org/pkg/time/来计算天数,但我不知道如何排除周末,只计算工作日。
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
f := time.Date(2015, time.August, 21, 24, 0, 0, 0, time.UTC)
diff := f.Sub(t)
// convert diff to days
days := int(diff.Hours() / 24)
fmt.Printf("days %d\n", days)
}
Run Code Online (Sandbox Code Playgroud)
这是一个简单的小解决方案。
days := 0
for {
if (t.Equal(f)) {
return days
}
if (t.Weekday() != time.Saturday && t.Weekday() != time.Sunday) {
days++
}
t = t.Add(time.Hour*24)
}
Run Code Online (Sandbox Code Playgroud)
您可能不想使用原始t变量,但要保持示例简单。我循环直到tequals f,如果它们相等,我返回我的天数。如果不是,我会检查以确保这是工作日,如果是,则增加我的天数。我无条件地在开始时间上增加一天。