Go 语言程序演示时间运算
我们将使用 Go 编程语言中 time 包的 Now 函数计算当前时间,以演示时间运算。时间运算使用数学函数进行计算。在这两个示例中,我们将使用数学计算来查找过去、未来和使用 Sub 函数计算的持续时间。输出使用 fmt 包的 Println 函数打印。
语法
func Now() Time
Now() 函数在 time 包中定义。此函数生成当前本地时间。要使用此函数,我们必须首先在程序中导入 time 包。
func sub()
此函数是 time 包的一部分。它用于计算两个 time.Time 值之间的持续时间。
time.Hour()
此方法是 time 包的一部分。它用于获取当前小时作为 time.Hour 值。
算法
在程序中导入所需的包
创建一个 main 函数
在 main 函数中,使用 time 包的 Now 函数查找当前时间
使用内置函数和数学逻辑计算未来、过去和持续时间
在控制台上打印当前时间、未来、过去和持续时间
打印语句使用 fmt 包的 Println 函数执行
示例 1
在此示例中,当前时间将使用 time 包的 Now 函数计算。然后通过将 3 小时的持续时间添加到当前时间来计算未来,通过从未来减去 2 天的持续时间来计算过去,并且使用 Sub 函数计算过去和当前时间之间的差异。所有这些值都使用 Println 函数在控制台上打印。
//Golang program to demonstrate the time arithmetic package main import ( "fmt" "time" ) //Main function to execute the program func main() { current_time := time.Now() //find the current time using Now function // Add a duration of 3 hours to now future := current_time.Add(3 * time.Hour) // Subtract a duration of 2 days from future past := future.Add(-2 * 24 * time.Hour) // Calculate the difference between past and current_time duration := current_time.Sub(past) // Print the values calculated above fmt.Println("Now:", current_time) fmt.Println("Future:", future) fmt.Println("Past:", past) fmt.Println("Duration between past and now:", duration) }
输出
Now: 2023-02-28 09:31:56.827693083 +0000 UTC m=+0.000016893 Future: 2023-02-28 12:31:56.827693083 +0000 UTC m=+10800.000016893 Past: 2023-02-26 12:31:56.827693083 +0000 UTC m=-161999.999983107 Duration between past and now: 45h0m0s
示例 2
在此示例中,我们将像在最后一个示例中一样,使用 Now 函数计算当前时间。未来将通过将 10 分钟添加到当前时间来计算。然后,从未来时间减去 1 小时以获得过去,并且将使用 Sub 函数以及过去和当前时间来计算持续时间。所有计算出的值都将打印到控制台上。让我们看一下代码。
package main import ( "fmt" "time" ) func main() { current_time := time.Now() //calculate the current time using the Now function // Add 10 minutes to the current time future := current_time.Add(10 * time.Minute) // Subtract 1 hour from the future time past := future.Add(-1 * time.Hour) // Calculate the duration between past and now duration := current_time.Sub(past) // Print the values calculated above fmt.Println("Now:", current_time) fmt.Println("Future:", future) fmt.Println("Past:", past) fmt.Println("Duration between past and now:", duration) }
输出
Now: 2023-02-28 09:33:53.548874654 +0000 UTC m=+0.000018376 Future: 2023-02-28 09:43:53.548874654 +0000 UTC m=+600.000018376 Past: 2023-02-28 08:43:53.548874654 +0000 UTC m=-2999.999981624 Duration between past and now: 50m0s
结论
我们使用两个示例执行并编译了演示时间运算的程序。在这两个示例中,我们使用不同的数学逻辑和 Sub 函数(有助于查找持续时间)计算了过去、未来、currentTime 和持续时间。