Skip to content

Commit f033881

Browse files
committed
refactor: Optimize ToGregorian
1 parent a388f64 commit f033881

3 files changed

Lines changed: 9 additions & 9 deletions

File tree

calendar/julian/julian.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,10 @@ func FromStdTime(t time.Time) *Julian {
7979
// ToGregorian converts Julian instance to Gregorian instance.
8080
// 将 Lunar 实例转化为 Gregorian 实例
8181
func (j *Julian) ToGregorian(timezone ...string) *calendar.Gregorian {
82+
g := new(calendar.Gregorian)
8283
if j == nil {
8384
return nil
8485
}
85-
g := new(calendar.Gregorian)
8686
loc := time.UTC
8787
if len(timezone) > 0 {
8888
loc, g.Error = time.LoadLocation(timezone[0])

calendar/lunar/lunar.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,10 @@ func MinValue() *Lunar {
104104
// FromStdTime creates a Lunar instance from standard time.Time.
105105
// 从标准 time.Time 创建 Lunar 实例
106106
func FromStdTime(t time.Time) *Lunar {
107+
l := new(Lunar)
107108
if t.IsZero() {
108109
return nil
109110
}
110-
l := new(Lunar)
111111
daysInYear, daysInMonth, leapMonth := 365, 30, 0
112112
maxYear, minYear := MaxValue().year, MinValue().year
113113

@@ -155,10 +155,10 @@ func FromStdTime(t time.Time) *Lunar {
155155
// ToGregorian converts Lunar instance to Gregorian instance.
156156
// 将 Lunar 实例转化为 Gregorian 实例
157157
func (l *Lunar) ToGregorian(timezone ...string) *calendar.Gregorian {
158-
if l == nil {
159-
return nil
160-
}
161158
g := new(calendar.Gregorian)
159+
if !l.IsValid() {
160+
return g
161+
}
162162
loc := time.UTC
163163
if len(timezone) > 0 {
164164
loc, g.Error = time.LoadLocation(timezone[0])

calendar/persian/persian.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,10 @@ func MinValue() *Persian {
7171
// FromStdTime creates a Persian instance from standard time.Time.
7272
// 从标准 time.Time 创建 Persian 实例
7373
func FromStdTime(t time.Time) *Persian {
74+
p := new(Persian)
7475
if t.IsZero() {
7576
return nil
7677
}
77-
p := new(Persian)
7878
// 获取公历儒略日计数
7979
gjdn := int(julian.FromStdTime(time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())).JD(0))
8080
pjdn := getPersianJdn(475, 1, 1)
@@ -98,10 +98,10 @@ func FromStdTime(t time.Time) *Persian {
9898
// ToGregorian converts Persian instance to Gregorian instance.
9999
// 将 Persian 实例转化为 Gregorian 实例
100100
func (p *Persian) ToGregorian(timezone ...string) *calendar.Gregorian {
101-
if p == nil {
102-
return nil
103-
}
104101
g := new(calendar.Gregorian)
102+
if !p.IsValid() {
103+
return g
104+
}
105105
loc := time.UTC
106106
if len(timezone) > 0 {
107107
loc, g.Error = time.LoadLocation(timezone[0])

0 commit comments

Comments
 (0)