From 46ecb117a5b706cbb6cca9e4e613ab0074a0618f Mon Sep 17 00:00:00 2001 From: hhhhhxm <93307037+hhhhhxm@users.noreply.github.com> Date: Wed, 31 May 2023 09:54:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD=E6=9F=90?= =?UTF-8?q?=E4=B8=AA=E6=97=A5=E6=9C=9F=E6=98=AF=E4=B8=80=E5=B9=B4=E5=BD=93?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E7=AC=AC=E5=87=A0=E5=A4=A9=E7=9A=84=E6=96=B9?= =?UTF-8?q?=E6=B3=95=20(#103)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 增加判断某个日期是一年当中的第几天的方法 * 修改下函数名字 --------- Co-authored-by: huangxingming --- datetime/datetime.go | 7 +++++++ datetime/datetime_test.go | 15 +++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/datetime/datetime.go b/datetime/datetime.go index 50101ee..2636c4b 100644 --- a/datetime/datetime.go +++ b/datetime/datetime.go @@ -237,3 +237,10 @@ func BetweenSeconds(t1 time.Time, t2 time.Time) int64 { index := t2.Unix() - t1.Unix() return index } + +func DayOfYear(t1 time.Time) int { + y, m, d := t1.Date() + firstDay := time.Date(y, 1, 1, 0, 0, 0, 0, t1.Location()) + nowDate := time.Date(y, m, d, 0, 0, 0, 0, t1.Location()) + return int(nowDate.Sub(firstDay).Hours() / 24) +} diff --git a/datetime/datetime_test.go b/datetime/datetime_test.go index 4314564..d92fe19 100644 --- a/datetime/datetime_test.go +++ b/datetime/datetime_test.go @@ -271,3 +271,18 @@ func TestIsLeapYear(t *testing.T) { assert.Equal(true, result1) assert.Equal(false, result2) } + +func TestDayOfYear(t *testing.T) { + assert := internal.NewAssert(t, "TestDayOfYear") + date := time.Date(2023, 02, 01, 1, 1, 1, 0, time.Local) + result := DayOfYear(date) + assert.Equal(31, result) + + date1 := time.Date(2023, 01, 02, 1, 1, 1, 0, time.Local) + result1 := DayOfYear(date1) + assert.Equal(1, result1) + + date3 := time.Date(2023, 01, 01, 1, 1, 1, 0, time.Local) + result2 := DayOfYear(date3) + assert.Equal(0, result2) +}