Skip to content

Commit fd87512

Browse files
committed
refactor: Change the receiving parameter to pointer type
1 parent e16ea8e commit fd87512

11 files changed

+2901
-4260
lines changed

boundary_unit_test.go

100755100644
+420-780
Large diffs are not rendered by default.

calendar.go

+29-17
Original file line numberDiff line numberDiff line change
@@ -8,54 +8,66 @@ import (
88

99
// Lunar converts Carbon instance to Lunar instance.
1010
// 将 Carbon 实例转化为 Lunar 实例
11-
func (c Carbon) Lunar() (l lunar.Lunar) {
12-
if c.Error != nil {
11+
func (c *Carbon) Lunar() *lunar.Lunar {
12+
l := new(lunar.Lunar)
13+
if c.IsNil() {
14+
return nil
15+
}
16+
if c.HasError() {
1317
l.Error = c.Error
14-
return
18+
return l
1519
}
1620
return lunar.FromGregorian(c.StdTime()).ToLunar()
1721
}
1822

1923
// CreateFromLunar creates a Carbon instance from Lunar date and time.
2024
// 从 农历日期 创建 Carbon 实例
21-
func CreateFromLunar(year, month, day, hour, minute, second int, isLeapMonth bool) Carbon {
25+
func CreateFromLunar(year, month, day, hour, minute, second int, isLeapMonth bool) *Carbon {
26+
l := lunar.FromLunar(year, month, day, hour, minute, second, isLeapMonth)
27+
if !l.IsValid() {
28+
return nil
29+
}
2230
t := lunar.FromLunar(year, month, day, hour, minute, second, isLeapMonth).ToGregorian().Time
2331
return CreateFromStdTime(t)
2432
}
2533

2634
// Julian converts Carbon instance to Julian instance.
2735
// 将 Carbon 实例转化为 Julian 实例
28-
func (c Carbon) Julian() (j julian.Julian) {
29-
if c.Error != nil {
30-
return
36+
func (c *Carbon) Julian() *julian.Julian {
37+
j := new(julian.Julian)
38+
if c.IsInvalid() {
39+
return j
3140
}
3241
return julian.FromGregorian(c.StdTime()).ToJulian()
3342
}
3443

3544
// CreateFromJulian creates a Carbon instance from Julian Day or Modified Julian Day.
3645
// 从 儒略日/简化儒略日 创建 Carbon 实例
37-
func CreateFromJulian(f float64) Carbon {
46+
func CreateFromJulian(f float64) *Carbon {
47+
g := julian.FromJulian(f).ToGregorian()
48+
if !g.IsValid() {
49+
return nil
50+
}
3851
t := julian.FromJulian(f).ToGregorian().Time
3952
return CreateFromStdTime(t)
4053
}
4154

4255
// Persian converts Carbon instance to Persian instance.
4356
// 将 Carbon 实例转化为 Persian 实例
44-
func (c Carbon) Persian() (p persian.Persian) {
45-
if c.Error != nil {
46-
return
57+
func (c *Carbon) Persian() *persian.Persian {
58+
p := new(persian.Persian)
59+
if c.IsInvalid() {
60+
return p
4761
}
4862
return persian.FromGregorian(c.StdTime()).ToPersian()
4963
}
5064

5165
// CreateFromPersian creates a Carbon instance from Persian date and time.
5266
// 从 波斯日期 创建 Carbon 实例
53-
func CreateFromPersian(year, month, day, hour, minute, second int) (c Carbon) {
67+
func CreateFromPersian(year, month, day, hour, minute, second int) *Carbon {
5468
p := persian.FromPersian(year, month, day, hour, minute, second)
55-
if p.Error != nil {
56-
c.Error = p.Error
57-
return
69+
if p == nil || p.Error != nil {
70+
return nil
5871
}
59-
t := p.ToGregorian().Time
60-
return CreateFromStdTime(t)
72+
return CreateFromStdTime(p.ToGregorian().Time)
6173
}

0 commit comments

Comments
 (0)