mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-04 12:52:28 +08:00
doc: add doc for AddDaySafe, AddMonthSafe, AddYearSafe
This commit is contained in:
@@ -1,51 +1,51 @@
|
||||
-----BEGIN rsa private key-----
|
||||
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
|
||||
-----END rsa private key-----
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
-----BEGIN rsa public key-----
|
||||
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAydCMlSbzx3yb6o3T/CUp
|
||||
fxRHSl45LjyqhEQiMHkGPcL9d81NlxVHvvy/V/mY5wtarYRlifsk2OOVJ2LyfagX
|
||||
KM5k16LEEq2PsPcKVM4Vp6gLCIB2aX88hfJkYfTRGW2RX9aVCJaK1Ak2nXInuNEG
|
||||
9T/ykelH57gHjH2k9NuDBifcIm3fIKNKYqK4WvDQMob8KyKJdiKPsKll4Z5ZKGt/
|
||||
gqpMt0gWx1fZ/njUnGATUoXMH7/JXdPQH+VVYt5HFq8JqffkiiIW0zzdNmA0dSGx
|
||||
c96i8dCNdIB79iQAJ/X0c5fk5/8b/fkLUHY/BvBMhFtLp7/TCnbzn5Rmp8IJtWKe
|
||||
xaQ00AqzRNGnd4LoJAiPWAipfsUeYXW517lBllKz9wiKo7AmkB0h8fig5ZEK5btS
|
||||
BqNRgdnMjBxrm/QFgWdqsxmzcjrXD3iV+ZNOE8s47jkdhjoPRpqqyMSUawmJs1uy
|
||||
SrVpgaldIJrBzNOATReHFQ+mSlHi7D1BcrOegCHasIqaQKv+w9ttR1P6bFcVezO/
|
||||
OQaTbdQviB+pHqYv7Ww9kVPko1c+X5SMUUXy0MwwjLRl2TcEA0BzUf3Qdq5TA7x2
|
||||
Q4Eak2oBsuuEZrCPSTDRXjwUxd+Cz82SZMKg6fDe409dPR0S8w1xp4gdknvoQIyN
|
||||
pNrY6I6/UyDieOAImOLSrMECAwEAAQ==
|
||||
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkyNIU0a9CCzY+Mf6/jwT
|
||||
eoxhY5NGGQ+/1pYcJk+8aZXvFcRoewwjs5NQ2Oyfc4cCGpU7EVfh3LrEZxuMIx3g
|
||||
ZyY6On0EH6tBjZaxpaAkjcMpkAAIwSOak8TeqIxjVQc5R0up3QVQudhGgdGwQS6P
|
||||
sRmgJ42sKMCCWxCUOPZyIJkxex1HCPXVxOjDiNsd+EdswaXvCNxN0lpPosoEE4p0
|
||||
ObxQqFRb/PEDBchm7FHMKm7yLa1YpALM2PsTCr1RJZ3OixaX3TpbxVWm4i5VVXF7
|
||||
C3Xp1onEn2jz5D8p0vUMUFUKRcX7UHr73mBAtNQ+8yyi7NWZwbay0s7bKVO0gFcc
|
||||
P/O9cSCW7g55qVh5x9T+pGJuK43U0VDKJhx3w2llHJpG14O/lOdBSpDZD+lRQq8i
|
||||
/SemiCVNc4uz9wXBeQXxe6XNfW69wIfyRrIHObOY16UUwtTz8grxibiPiNxxAbwx
|
||||
1cKij2thEr2kyF6YRNpQnAuwDM8wX0UXQDY3uZHoiFQBGW15Eprtb+6iRmlY47Z2
|
||||
n+LX27evoDoNuvTdlOpY5A+qDm3NjAsw18JCDMfqxpLOwQS1CAInLRRegw+pcL5J
|
||||
NGl1th4sTXdZPVz/z0KVETbNbysrjHYPUiYnyiWe6EFkWgUQfiQJGulGAwxxav9w
|
||||
pxWELFoQKx8TZND1jfBLbJkCAwEAAQ==
|
||||
-----END rsa public key-----
|
||||
|
||||
@@ -28,6 +28,9 @@ import (
|
||||
- [AddHour](#AddHour)
|
||||
- [AddMinute](#AddMinute)
|
||||
- [AddYear](#AddYear)
|
||||
- [AddDaySafe](#AddDaySafe)
|
||||
- [AddMonthSafe](#AddMonthSafe)
|
||||
- [AddYearSafe](#AddYearSafe)
|
||||
- [BeginOfMinute](#BeginOfMinute)
|
||||
- [BeginOfHour](#BeginOfHour)
|
||||
- [BeginOfDay](#BeginOfDay)
|
||||
@@ -320,6 +323,126 @@ func main() {
|
||||
}
|
||||
```
|
||||
|
||||
### <span id="AddDaySafe">AddDaySafe</span>
|
||||
|
||||
<p>增加/减少指定的天数,并确保日期是有效日期。</p>
|
||||
|
||||
<b>函数签名:</b>
|
||||
|
||||
```go
|
||||
func AddDaySafe(t time.Time, days int) time.Time
|
||||
```
|
||||
|
||||
<b>示例:<span style="float:right;display:inline-block;">[运行](todo)</span></b>
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
"github.com/duke-git/lancet/v2/datetime"
|
||||
)
|
||||
|
||||
func main() {
|
||||
leapYearDate1, _ := time.Parse("2006-01-02", "2024-02-29")
|
||||
result1 := datetime.AddDaySafe(leapYearDate1, 1)
|
||||
|
||||
leapYearDate2, _ := time.Parse("2006-01-02", "2024-03-01")
|
||||
result2 := datetime.AddDaySafe(leapYearDate2, -1)
|
||||
|
||||
nonLeapYearDate1, _ := time.Parse("2006-01-02", "2025-02-28")
|
||||
result3 := datetime.AddDaySafe(nonLeapYearDate1, 1)
|
||||
|
||||
nonLeaYearDate2, _ := time.Parse("2006-01-02", "2025-03-01")
|
||||
result4 := datetime.AddDaySafe(nonLeaYearDate2, -1)
|
||||
|
||||
fmt.Println(result1.Format("2006-01-02"))
|
||||
fmt.Println(result2.Format("2006-01-02"))
|
||||
fmt.Println(result3.Format("2006-01-02"))
|
||||
fmt.Println(result4.Format("2006-01-02"))
|
||||
|
||||
// Output:
|
||||
// 2024-03-01
|
||||
// 2024-02-29
|
||||
// 2025-03-01
|
||||
// 2025-02-28
|
||||
}
|
||||
```
|
||||
|
||||
### <span id="AddMonthSafe">AddMonthSafe</span>
|
||||
|
||||
<p>增加/减少指定的月份,并确保日期是有效日期。</p>
|
||||
|
||||
<b>函数签名:</b>
|
||||
|
||||
```go
|
||||
func AddMonthSafe(t time.Time, months int) time.Time
|
||||
```
|
||||
|
||||
<b>示例:<span style="float:right;display:inline-block;">[运行](todo)</span></b>
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
"github.com/duke-git/lancet/v2/datetime"
|
||||
)
|
||||
|
||||
func main() {
|
||||
date1, _ := time.Parse("2006-01-02", "2025-01-31")
|
||||
result1 := datetime.AddMonthSafe(date1, 1)
|
||||
|
||||
date2, _ := time.Parse("2006-01-02", "2024-02-29")
|
||||
result2 := datetime.AddMonthSafe(date2, -1)
|
||||
|
||||
fmt.Println(result1.Format("2006-01-02"))
|
||||
fmt.Println(result2.Format("2006-01-02"))
|
||||
|
||||
// Output:
|
||||
// 2025-02-28
|
||||
// 2024-01-29
|
||||
}
|
||||
```
|
||||
|
||||
### <span id="AddYearSafe">AddYearSafe</span>
|
||||
|
||||
<p>增加/减少指定的年份,并确保日期是有效日期。</p>
|
||||
|
||||
<b>函数签名:</b>
|
||||
|
||||
```go
|
||||
func AddYearSafe(t time.Time, years int) time.Time
|
||||
```
|
||||
|
||||
<b>示例:<span style="float:right;display:inline-block;">[运行](todo)</span></b>
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
"github.com/duke-git/lancet/v2/datetime"
|
||||
)
|
||||
|
||||
func main() {
|
||||
date, _ := time.Parse("2006-01-02", "2020-02-29")
|
||||
|
||||
result1 := datetime.AddYearSafe(date, 1)
|
||||
result2 := datetime.AddYearSafe(date, -1)
|
||||
|
||||
fmt.Println(result1.Format("2006-01-02"))
|
||||
fmt.Println(result2.Format("2006-01-02"))
|
||||
|
||||
// Output:
|
||||
// 2021-02-28
|
||||
// 2019-02-28
|
||||
}
|
||||
```
|
||||
|
||||
### <span id="BeginOfMinute">BeginOfMinute</span>
|
||||
|
||||
<p>返回指定时间的分钟开始时间。</p>
|
||||
|
||||
@@ -29,6 +29,9 @@ import (
|
||||
- [AddHour](#AddHour)
|
||||
- [AddMinute](#AddMinute)
|
||||
- [AddYear](#AddYear)
|
||||
- [AddDaySafe](#AddDaySafe)
|
||||
- [AddMonthSafe](#AddMonthSafe)
|
||||
- [AddYearSafe](#AddYearSafe)
|
||||
- [BeginOfMinute](#BeginOfMinute)
|
||||
- [BeginOfHour](#BeginOfHour)
|
||||
- [BeginOfDay](#BeginOfDay)
|
||||
@@ -322,6 +325,126 @@ func main() {
|
||||
}
|
||||
```
|
||||
|
||||
### <span id="AddDaySafe">AddDaySafe</span>
|
||||
|
||||
<p>Add or sub days to the time and ensure that the returned date does not exceed the valid date of the target year and month.</p>
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```go
|
||||
func AddDaySafe(t time.Time, days int) time.Time
|
||||
```
|
||||
|
||||
<b>Example:<span style="float:right;display:inline-block;">[Run](todo)</span></b>
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
"github.com/duke-git/lancet/v2/datetime"
|
||||
)
|
||||
|
||||
func main() {
|
||||
leapYearDate1, _ := time.Parse("2006-01-02", "2024-02-29")
|
||||
result1 := datetime.AddDaySafe(leapYearDate1, 1)
|
||||
|
||||
leapYearDate2, _ := time.Parse("2006-01-02", "2024-03-01")
|
||||
result2 := datetime.AddDaySafe(leapYearDate2, -1)
|
||||
|
||||
nonLeapYearDate1, _ := time.Parse("2006-01-02", "2025-02-28")
|
||||
result3 := datetime.AddDaySafe(nonLeapYearDate1, 1)
|
||||
|
||||
nonLeaYearDate2, _ := time.Parse("2006-01-02", "2025-03-01")
|
||||
result4 := datetime.AddDaySafe(nonLeaYearDate2, -1)
|
||||
|
||||
fmt.Println(result1.Format("2006-01-02"))
|
||||
fmt.Println(result2.Format("2006-01-02"))
|
||||
fmt.Println(result3.Format("2006-01-02"))
|
||||
fmt.Println(result4.Format("2006-01-02"))
|
||||
|
||||
// Output:
|
||||
// 2024-03-01
|
||||
// 2024-02-29
|
||||
// 2025-03-01
|
||||
// 2025-02-28
|
||||
}
|
||||
```
|
||||
|
||||
### <span id="AddMonthSafe">AddMonthSafe</span>
|
||||
|
||||
<p>Add or sub months to the time and ensure that the returned date does not exceed the valid date of the target year and month.</p>
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```go
|
||||
func AddMonthSafe(t time.Time, months int) time.Time
|
||||
```
|
||||
|
||||
<b>Example:<span style="float:right;display:inline-block;">[Run](todo)</span></b>
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
"github.com/duke-git/lancet/v2/datetime"
|
||||
)
|
||||
|
||||
func main() {
|
||||
date1, _ := time.Parse("2006-01-02", "2025-01-31")
|
||||
result1 := datetime.AddMonthSafe(date1, 1)
|
||||
|
||||
date2, _ := time.Parse("2006-01-02", "2024-02-29")
|
||||
result2 := datetime.AddMonthSafe(date2, -1)
|
||||
|
||||
fmt.Println(result1.Format("2006-01-02"))
|
||||
fmt.Println(result2.Format("2006-01-02"))
|
||||
|
||||
// Output:
|
||||
// 2025-02-28
|
||||
// 2024-01-29
|
||||
}
|
||||
```
|
||||
|
||||
### <span id="AddYearSafe">AddYearSafe</span>
|
||||
|
||||
<p>Add or sub years to the time and ensure that the returned date does not exceed the valid date of the target year and month.</p>
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```go
|
||||
func AddYearSafe(t time.Time, years int) time.Time
|
||||
```
|
||||
|
||||
<b>Example:<span style="float:right;display:inline-block;">[Run](todo)</span></b>
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
"github.com/duke-git/lancet/v2/datetime"
|
||||
)
|
||||
|
||||
func main() {
|
||||
date, _ := time.Parse("2006-01-02", "2020-02-29")
|
||||
|
||||
result1 := datetime.AddYearSafe(date, 1)
|
||||
result2 := datetime.AddYearSafe(date, -1)
|
||||
|
||||
fmt.Println(result1.Format("2006-01-02"))
|
||||
fmt.Println(result2.Format("2006-01-02"))
|
||||
|
||||
// Output:
|
||||
// 2021-02-28
|
||||
// 2019-02-28
|
||||
}
|
||||
```
|
||||
|
||||
### <span id="BeginOfMinute">BeginOfMinute</span>
|
||||
|
||||
<p>Return beginning minute time of day.</p>
|
||||
|
||||
Reference in New Issue
Block a user