Golang中如何在if语句中使用当前时间

Golang中如何在if语句中使用当前时间 大家好,我正在尝试根据当前时间设置问候语,但我遇到了下午3点和凌晨3点的问题。由于小时是整数,我该如何声明它?

代码:

    hour, _, _ := time.Now().Clock()

    if hour >= 18 && hour < 3 {
          greetings(Dawn)
}
4 回复

可以这样写:

 if (hour < 12 && hour <= 3) || (hour > 12 && hour <= 18) {
 		greetings("Dawn")
 }

第一个条件检查上午时间,第二个条件检查下午时间。

更多关于Golang中如何在if语句中使用当前时间的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


感谢您的回答。我该如何将这种思路应用到以下代码中:

if hour >= 18 && hour < 6 {
		fmt.Println("\nGood evening.")
}

这个条件语句永远不会成立,因为 18 大于 6。我想表达的是,我指的是第二天的早上 6 点。

也许这太详尽了,如果是这样,不用担心!

我可以将晚上称为从18点到24点,将黎明称为从0点到6点。我最初的愿望是将晚上称为从18点到(第二天)3点,并将3点到6点称为黎明。

下面的代码也不错。

代码:

if hour >= 18 && hour < 24 {
		fmt.Println("\nGood evening.")

	} else if hour >= 0 && hour < 6 {
		fmt.Println("\nGood dawn.")

	}

在Go中,您遇到的问题是由于逻辑条件错误导致的。hour >= 18 && hour < 3 这个条件永远不会为真,因为一个数字不可能同时大于等于18且小于3。

以下是正确的实现方式:

package main

import (
    "fmt"
    "time"
)

func main() {
    hour, _, _ := time.Now().Clock()
    
    // 方法1:使用多个if-else语句
    if hour >= 3 && hour < 12 {
        fmt.Println("Good morning!")
    } else if hour >= 12 && hour < 18 {
        fmt.Println("Good afternoon!")
    } else if hour >= 18 && hour < 21 {
        fmt.Println("Good evening!")
    } else {
        fmt.Println("Good night!") // 21:00-02:59
    }

    // 方法2:处理跨午夜的时间段
    hour, _, _ = time.Now().Clock()
    
    if hour >= 3 && hour < 12 {
        fmt.Println("Morning greeting")
    } else if hour >= 12 && hour < 18 {
        fmt.Println("Afternoon greeting")
    } else if hour >= 18 {
        fmt.Println("Evening greeting")
    } else {
        fmt.Println("Dawn greeting") // 0:00-2:59
    }
}

如果您想特别处理凌晨时段(0:00-2:59),可以这样写:

hour, _, _ := time.Now().Clock()

if hour >= 0 && hour < 3 {
    fmt.Println("Dawn greeting")
} else if hour >= 3 && hour < 12 {
    fmt.Println("Morning greeting")
} else if hour >= 12 && hour < 18 {
    fmt.Println("Afternoon greeting")
} else {
    fmt.Println("Evening greeting") // 18:00-23:59
}

或者使用switch语句:

hour, _, _ := time.Now().Clock()

switch {
case hour >= 0 && hour < 3:
    fmt.Println("Dawn")
case hour >= 3 && hour < 12:
    fmt.Println("Morning")
case hour >= 12 && hour < 18:
    fmt.Println("Afternoon")
default:
    fmt.Println("Evening")
}
回到顶部