go - 如何计算Golang中的工作日数

标签 go

到目前为止,我有这个来计算使用 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)
}

最佳答案

这是一个简单的小解决方案。

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)
}

您可能不想使用原始的 t 变量,但要保持示例简单。我循环直到 t 等于 f,如果它们相等,我返回我的天数。如果不是,我会检查以确保它是工作日,如果是,则增加我的天数。我无条件地在我的开始时间上增加一天。

关于go - 如何计算Golang中的工作日数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31327124/

相关文章:

go - 使用 Go 的网络服务器,网站的根在哪里映射到文件系统?

go - 使用 HTTP 协议(protocol)和 golang 列出 OrientDb 数据库

web - Golang 路线不起作用

go - 不能将 ldflags 与 bee pack 命令一起使用

Gocui 在寻呼机程序后中断

找不到 Docker 滑行

go - 访问相同结构的不同字段但在单独的goroutine中需要sync.Mutex吗?

json - 无法从JSON解码int字段

mongodb - 打印 mongoDB Collection Golang 中的所有记录

Go 调试适配器进程在 VS 代码中意外终止