Go语言程序:获取一年中第几天(共365天)


在 Go 语言中,我们可以使用 YearDay 和 Sub 函数以及算术运算方法来获取一年中第几天(共365天)。当前时间使用 time 包中的 Now 函数获取,YearDay() 函数用于获取一年中第几天(共365天)。

方法一:使用 YearDay 和 Sub 函数

这种方法使用 currentTime.Sub(start_of_year).Hours() / 24 以及简单的 YearDay 方法计算当前日期与年初之间的天数。

语法

func Now() Time

Now() 函数定义在 time 包中。此函数生成当前本地时间。要使用此函数,我们必须首先在程序中导入 time 包。

func sub()

此函数是 time 包的一部分。它用于计算两个 time.Time 值之间的持续时间。

算法

  • 步骤 1 − 在程序中导入所需的包

  • 步骤 2 − 创建 main 函数

  • 步骤 3 − 在 main 函数中使用内置函数获取一年中第几天

  • 步骤 4 − 使用 fmt 包中的 Printf 函数在控制台上打印一年中第几天

示例 1

在这个示例中,我们将编写一个 Go 语言程序,使用 YearDay 函数查找一年中的当前时间。

package main

import (
   "fmt"
   "time"
)

func main() {
   currentTime := time.Now()
   yearDay := currentTime.YearDay()
   fmt.Printf("Today is day %d of the year.\n", yearDay)
}

输出

Today is day 93 of the year.

示例 2

在这个示例中,我们将编写一个 Go 语言程序,使用 Sub 函数查找一年中的当前时间。

package main

import (
   "fmt"
   "time"
)

func main() {
   currentTime := time.Now()
   start_of_year := time.Date(currentTime.Year(), 1, 1, 0, 0, 0, 0, currentTime.Location())
   year_day := int(currentTime.Sub(start_of_year).Hours()/24) + 1
   fmt.Printf("Today is day %d of the year.\n", year_day)
}

输出

Today is day 93 of the year.

方法二:使用算术运算符

在这种方法中,我们将编写一个 Go 语言程序,使用算术运算来获取一年中第几天(共365天)。这里使用的算术运算符是模运算符,用于检查年份是否是闰年。

算法

  • 步骤 1 − 此程序在程序中导入 fmt 和 time 包,其中 fmt 用于格式化输入和输出,time 用于获取时间。

  • 步骤 2 − 创建 main 函数,并在该函数中使用 time 包中的 Now 函数获取当前时间。

  • 步骤 3 − 然后,使用当前时间的 YearDay 函数计算一年中的第几天。

  • 步骤 4 − 在此步骤中,使用当前时间的 Year 函数获取当前时间的年份。

  • 步骤 5 − 然后,通过获取其与 4、100 和 400 的模来检查年份是否是闰年。

  • 步骤 6 − 如果是闰年并且一年中的第几天大于等于 60,则将一年中的第几天加 1。

  • 步骤 7 − 最后,使用 fmt 包中的 Println 函数打印一年中的第几天,其中 ln 表示换行。

示例

在下面的示例中,我们将使用算术运算符在 Go 编程语言中获取一年中第几天(共365天)。

package main

import (
   "fmt"
   "time"
)

func main() {
	
   Now := time.Now()

	
   day_of_year := Now.YearDay()
   year := Now.Year()

	
   leap_year := (year%4 == 0 && year%100 != 0) || year%400 == 0

	
   if leap_year && day_of_year >= 60 {
      day_of_year++
   }

   fmt.Printf("Today is the day %d of the year.\n", day_of_year)
}

输出

Today is the day 93 of the year.

结论

我们使用三个示例执行并编译了获取一年中第几天(共365天)的程序。在第一个示例中,我们使用了 YearDay 函数;在第二个示例中,我们通过查找当前日期与年初之间的天数来获取一年中第几天,为此我们使用了 sub 方法;在第三个示例中,我们使用了算术运算。

更新于:2023年4月3日

浏览量:695

启动您的 职业生涯

完成课程获得认证

开始学习
广告