检查时间是否在周末

rvl*_*007 -2 go

我有一个自定义的周末时间,从Friday 10pm UTCSunday 10:05pm UTC。我有一个 UTC 的当前时间戳,只是想检查时间是否属于周末时间。任何技巧将不胜感激。我尝试使用weekdays() and time但未能达到预期的结果。

pet*_*rSO 6

检查时间是否属于周末时间,即从UTC 时间周五晚上 10 点到周日晚上 10:05。


使用 Gotime 包。

例如,

package main

import (
    "fmt"
    "time"
)

// A weekend is Friday 10pm UTC to Sunday 10:05pm UTC
func isWeekend(t time.Time) bool {
    t = t.UTC()
    switch t.Weekday() {
    case time.Friday:
        h, _, _ := t.Clock()
        if h >= 12+10 {
            return true
        }
    case time.Saturday:
        return true
    case time.Sunday:
        h, m, _ := t.Clock()
        if h < 12+10 {
            return true
        }
        if h == 12+10 && m <= 5 {
            return true
        }
    }
    return false
}

func main() {
    t := time.Date(2019, 11, 22, 12+10, 5, 0, 0, time.UTC)
    fmt.Println(t)
    w := isWeekend(t)
    fmt.Println(w)
}
Run Code Online (Sandbox Code Playgroud)

游乐场:https://play.golang.org/p/TZBoNcwH-qU

输出:

2019-11-22 22:05:00 +0000 UTC
true
Run Code Online (Sandbox Code Playgroud)