添加两个日期的 Golang 程序

添加两个日期的 Golang 程序

在这篇 Golang 文章中,我们将编写程序来添加两个日期。可以使用 Add()、AddDate() 等方法来添加日期。表示日子的格式有多种。在这里,添加后的日期将使用 YY/MM/DD 格式表示。

语法

func (t Time) Sub(u Time) Duration

Go 中的 sub() 函数用于获取两个日期之间的差异。这个函数的前两个参数 t 和 u 是日期值,此函数返回两个值之间的小时、分钟和秒的差异。

time.Parse()

该函数属于 time 包。它需要两个输入,布局和值,布局表示字符串将遵循的格式,值表示要格式化的字符串。

time.AddDate()

该函数属于 time 包。返回通过添加多年、月和日到 time.Date 获得的值。

算法

  • 第 1 步 – 创建一个 package main 并在其中声明 fmt(格式 package)和 time package。 main 函数能够生成可执行代码,fmt 可以帮助格式化输入和输出。

  • 第 2 步 – 创建一个 main 函数,并在该函数中创建两个名称为 date1 和 date2 的日期,它们将被添加在一起。

  • 第 3 步 – 使用 time.Date 函数创建两个日期,其输入值为年、月、日、小时、分钟、秒和时区信息。

  • 第 4 步 – 然后,使用 date1 的 AddDate 方法将 date2 的日期、月份和年份添加到 date1,以将两个日期添加在一起。

  • 第 5 步 – 在这里,我们使用 Day 方法获取月份的天数,使用 YearDay 方法获取年的天数。

  • 第 6 步 – 然后,0 索引的年日减去 1。

  • 第 7 步 – 输出将打印在控制台上的添加日期,使用 fmt package 的 Println 函数。

示例1

在这个例子中,我们将编写一个 Golang 程序,使用 AddDate() 方法添加两个日期。我们将创建两个日期:date1 和 date2,然后使用 AddDate 函数添加这些日期,并将数据存储在 sum_of_dates 中。

package main

import (
   "fmt"
   "time"
)

func main() {
   date1 := time.Date(2023, time.February, 20, 0, 0, 0, 0, time.UTC) 
   date2 := time.Date(2023, time.February, 21, 0, 0, 0, 0, time.UTC) 
   sum_of_dates := date1.AddDate(0, 0, date2.Day()+date2.YearDay()-1) 
   fmt.Println("The dates are added as follows:")
   fmt.Println(sum_of_dates) 
}

输出

The dates are added as follows:
2023-05-03 00:00:00 +0000 UTC

示例2

在这个例子中,我们将编写一个 Golang 程序,使用 Add() 函数添加两个日期。我们将创建两个日期字符串 date1 和 date2,使用 Add 和 Sub 方法将它们相加,格式将与布局中给出的格式相似。

package main

import (
   "fmt"
   "time"
)

func main() {
   date1 := "2022-02-20"  
   date2 := "2023-02-21"  
   layout := "2006-01-02" 
   date1val, _ := time.Parse(layout, date1)
   date2val, _ := time.Parse(layout, date2)
   sum_of_dates := date1val.Add(date2val.Sub(date2val))  
   fmt.Println("The sum of the dates is done as:")
   fmt.Println(sum_of_dates.Format(layout))  
}

输出

The sum of the dates is done as:
2022-02-20

示例 3

在本例中,我们将编写一个Golang程序,使用Parse和AddDate方法添加两个日期。字符串将被解析为日期,然后使用AddDate方法相加。

package main

import (
   "fmt"
   "time"
)

func main() {
   date1 := "2023-03-24"
   date2 := "2023-03-26"

   dt1, err1 := time.Parse("2006-01-02", date1)
   dt2, err2 := time.Parse("2006-01-02", date2)

   if err1 != nil {
      panic(err1)
   }
   if err2 != nil {
      panic(err2)
   }

   result := dt1.AddDate(0, 0, int(dt2.Sub(dt1).Hours()/24))

   result_str := result.Format("2006-01-02")

   fmt.Println("两个日期相加的结果是:")
   fmt.Println(result_str)
}

输出

两个日期相加的结果是:
2023-03-26

结论

我们使用三个示例执行和总结了添加两个日期的程序。在第一个示例中,我们使用AddDate方法计算两个日期的总和,在第二个示例中,我们使用sub方法计算持续时间,然后使用Add方法相加两个日期,在第三个示例中,我们结合使用Parse和AddDate方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程