Golang程序 演示时间算术
我们将使用Go编程语言中时间包中的Now函数来计算当前时间,以演示时间算术。时间算术是使用数学函数计算的。在这两个例子中,我们将使用数学计算,用Sub函数找到过去、未来和持续时间。使用fmt包中的Println函数打印输出结果。
语法
func Now() Time
Now() 函数被定义在时间包中。这个函数生成了当前的本地时间。为了使用这个函数,我们必须首先在我们的程序中导入时间包。
func sub()
这个函数是时间包的一部分。它用于计算两个time.Time值之间的持续时间。
time.Hour()
这个方法是时间包的一部分。它被用来获取当前的小时数,作为time.Hour值。
算法
- 在程序中导入所需的包
-
创建一个主函数
-
在主函数中使用时间包中的Now函数找到当前时间
-
使用内置的函数和数学逻辑计算未来、过去和持续时间
-
在控制台打印当前时间、未来时间、过去时间和持续时间
-
使用 fmt 包中的 Println 函数执行打印语句。
例1
在这个例子中,将使用时间包中的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函数来计算过去、未来、当前时间和持续时间,这对寻找持续时间很有帮助。