From 09ec5b97a6deae6080c070706e6eb4268115b910 Mon Sep 17 00:00:00 2001 From: dudaodong Date: Wed, 31 May 2023 10:04:59 +0800 Subject: [PATCH] doc: add doc for DayOfYear --- datetime/datetime.go | 11 +++-- datetime/datetime_example_test.go | 20 ++++++++ datetime/datetime_test.go | 16 +++---- docs/datetime.md | 79 ++++++++++++++++++++++++------- docs/datetime_zh-CN.md | 78 +++++++++++++++++++++++------- 5 files changed, 156 insertions(+), 48 deletions(-) diff --git a/datetime/datetime.go b/datetime/datetime.go index 2636c4b..cc54021 100644 --- a/datetime/datetime.go +++ b/datetime/datetime.go @@ -238,9 +238,12 @@ func BetweenSeconds(t1 time.Time, t2 time.Time) int64 { 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()) +// DayOfYear returns which day of the year the parameter date `t` is. +// Play: todo +func DayOfYear(t time.Time) int { + y, m, d := t.Date() + firstDay := time.Date(y, 1, 1, 0, 0, 0, 0, t.Location()) + nowDate := time.Date(y, m, d, 0, 0, 0, 0, t.Location()) + return int(nowDate.Sub(firstDay).Hours() / 24) } diff --git a/datetime/datetime_example_test.go b/datetime/datetime_example_test.go index ba9f4ab..e835c70 100644 --- a/datetime/datetime_example_test.go +++ b/datetime/datetime_example_test.go @@ -369,3 +369,23 @@ func ExampleBetweenSeconds() { // 86400 // -86400 } + +func ExampleDayOfYear() { + date1 := time.Date(2023, 02, 01, 1, 1, 1, 0, time.Local) + result1 := DayOfYear(date1) + + date2 := time.Date(2023, 01, 02, 1, 1, 1, 0, time.Local) + result2 := DayOfYear(date2) + + date3 := time.Date(2023, 01, 01, 1, 1, 1, 0, time.Local) + result3 := DayOfYear(date3) + + fmt.Println(result1) + fmt.Println(result2) + fmt.Println(result3) + + // Output: + // 31 + // 1 + // 0 +} diff --git a/datetime/datetime_test.go b/datetime/datetime_test.go index d92fe19..cba4185 100644 --- a/datetime/datetime_test.go +++ b/datetime/datetime_test.go @@ -274,15 +274,15 @@ func TestIsLeapYear(t *testing.T) { 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) + date1 := time.Date(2023, 02, 01, 1, 1, 1, 0, time.Local) result1 := DayOfYear(date1) - assert.Equal(1, result1) + assert.Equal(31, result1) + + date2 := time.Date(2023, 01, 02, 1, 1, 1, 0, time.Local) + result2 := DayOfYear(date2) + assert.Equal(1, result2) date3 := time.Date(2023, 01, 01, 1, 1, 1, 0, time.Local) - result2 := DayOfYear(date3) - assert.Equal(0, result2) + result3 := DayOfYear(date3) + assert.Equal(0, result3) } diff --git a/docs/datetime.md b/docs/datetime.md index ca9bf6f..08d6f4d 100644 --- a/docs/datetime.md +++ b/docs/datetime.md @@ -56,6 +56,7 @@ import ( - [ToIso8601](#ToIso8601) - [IsLeapYear](#IsLeapYear) - [BetweenSeconds](#BetweenSeconds) +- [DayOfYear](#DayOfYear)
@@ -225,18 +226,18 @@ import ( func main() { now := time.Now() - after1Year := datetime.AddYear(now, 1) - diff1 := after1Year.Sub(now) + after1Year := datetime.AddYear(now, 1) + diff1 := after1Year.Sub(now) - before1Year := datetime.AddYear(now, -1) - diff2 := before1Year.Sub(now) + before1Year := datetime.AddYear(now, -1) + diff2 := before1Year.Sub(now) - fmt.Println(diff1) - fmt.Println(diff2) + fmt.Println(diff1) + fmt.Println(diff2) - // Output: - // 8760h0m0s - // -8760h0m0s + // Output: + // 8760h0m0s + // -8760h0m0s } ``` @@ -1161,17 +1162,59 @@ import ( func main() { today := time.Now() - tomorrow := AddDay(today, 1) - yesterday := AddDay(today, -1) + tomorrow := AddDay(today, 1) + yesterday := AddDay(today, -1) - result1 := datetime.BetweenSeconds(today, tomorrow) - result2 := datetime.BetweenSeconds(today, yesterday) + result1 := datetime.BetweenSeconds(today, tomorrow) + result2 := datetime.BetweenSeconds(today, yesterday) - fmt.Println(result1) - fmt.Println(result2) + fmt.Println(result1) + fmt.Println(result2) - // Output: - // 86400 - // -86400 + // Output: + // 86400 + // -86400 +} +``` + + +### DayOfYear + +

Returns which day of the year the parameter date `t` is.

+ +Signature: + +```go +func DayOfYear(t time.Time) int +``` + +Example: + +```go +package main + +import ( + "fmt" + "github.com/duke-git/lancet/v2/datetime" +) + +func main() { + date1 := time.Date(2023, 02, 01, 1, 1, 1, 0, time.Local) + result1 := datetime.DayOfYear(date1) + + date2 := time.Date(2023, 01, 02, 1, 1, 1, 0, time.Local) + result2 := datetime.DayOfYear(date2) + + date3 := time.Date(2023, 01, 01, 1, 1, 1, 0, time.Local) + result3 := datetime.DayOfYear(date3) + + fmt.Println(result1) + fmt.Println(result2) + fmt.Println(result3) + + // Output: + // 31 + // 1 + // 0 } ``` diff --git a/docs/datetime_zh-CN.md b/docs/datetime_zh-CN.md index 09e6330..1cb33a8 100644 --- a/docs/datetime_zh-CN.md +++ b/docs/datetime_zh-CN.md @@ -55,6 +55,7 @@ import ( - [ToIso8601](#ToIso8601) - [IsLeapYear](#IsLeapYear) - [BetweenSeconds](#BetweenSeconds) +- [DayOfYear](#DayOfYear)
@@ -225,18 +226,18 @@ import ( func main() { now := time.Now() - after1Year := datetime.AddYear(now, 1) - diff1 := after1Year.Sub(now) + after1Year := datetime.AddYear(now, 1) + diff1 := after1Year.Sub(now) - before1Year := datetime.AddYear(now, -1) - diff2 := before1Year.Sub(now) + before1Year := datetime.AddYear(now, -1) + diff2 := before1Year.Sub(now) - fmt.Println(diff1) - fmt.Println(diff2) + fmt.Println(diff1) + fmt.Println(diff2) - // Output: - // 8760h0m0s - // -8760h0m0s + // Output: + // 8760h0m0s + // -8760h0m0s } ``` @@ -1160,17 +1161,58 @@ import ( func main() { today := time.Now() - tomorrow := AddDay(today, 1) - yesterday := AddDay(today, -1) + tomorrow := AddDay(today, 1) + yesterday := AddDay(today, -1) - result1 := datetime.BetweenSeconds(today, tomorrow) - result2 := datetime.BetweenSeconds(today, yesterday) + result1 := datetime.BetweenSeconds(today, tomorrow) + result2 := datetime.BetweenSeconds(today, yesterday) - fmt.Println(result1) - fmt.Println(result2) + fmt.Println(result1) + fmt.Println(result2) - // Output: - // 86400 - // -86400 + // Output: + // 86400 + // -86400 +} +``` + +### DayOfYear + +

返回参数日期是一年中的第几天。

+ +函数签名: + +```go +func DayOfYear(t time.Time) int +``` + +示例: + +```go +package main + +import ( + "fmt" + "github.com/duke-git/lancet/v2/datetime" +) + +func main() { + date1 := time.Date(2023, 02, 01, 1, 1, 1, 0, time.Local) + result1 := datetime.DayOfYear(date1) + + date2 := time.Date(2023, 01, 02, 1, 1, 1, 0, time.Local) + result2 := datetime.DayOfYear(date2) + + date3 := time.Date(2023, 01, 01, 1, 1, 1, 0, time.Local) + result3 := datetime.DayOfYear(date3) + + fmt.Println(result1) + fmt.Println(result2) + fmt.Println(result3) + + // Output: + // 31 + // 1 + // 0 } ```