Go語言程式:新增兩個日期


在這篇Go語言文章中,我們將編寫程式來新增兩個日期。日期的新增使用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 - 建立一個main包,並在程式中宣告fmt(格式化包)和time包,其中main生成可執行程式碼,fmt幫助格式化輸入和輸出。

  • 步驟2 - 建立一個main函式,並在該函式中建立兩個名為date1和date2的日期,這兩個日期將被加在一起。

  • 步驟3 - 使用time.Date函式建立兩個日期,輸入值分別為年、月、日、小時、分鐘、秒和時區資訊。

  • 步驟4 - 然後,使用date1的AddDate方法將date2的日、月和年新增到date1中,從而將日期加在一起。

  • 步驟5 - 在這裡,我們使用Day方法獲取月份的天數,使用YearDay方法獲取年份的天數。

  • 步驟6 - 然後,減去1,因為根據AddDate方法,年份的天數是從0開始索引的。

  • 步驟7 - 輸出將是使用fmt包中的Println函式列印到控制檯的已新增日期。

示例1

在這個例子中,我們將編寫一個Go語言程式,使用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

在這個例子中,我們將編寫一個Go語言程式,使用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

在這個例子中,我們將編寫一個Go語言程式,使用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("The addition of two dates is:")
   fmt.Println(result_str)
}

輸出

The addition of two dates is:
2023-03-26

結論

我們執行並總結了使用三個示例新增兩個日期的程式。在第一個示例中,我們使用AddDate方法計算兩個日期的和;在第二個示例中,我們使用sub方法計算持續時間並使用Add方法新增兩個日期;在第三個示例中,我們一起使用了Parse和AddDate方法。

更新於:2023年4月3日

瀏覽量:315

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.