bug fix:腊月十二显示为正月初一的问题
This commit is contained in:
parent
616cd54222
commit
b0920d327c
@ -143,7 +143,7 @@ recalc:
|
|||||||
magic := int32(upper[idx])<<8 + int32(lower[idx])
|
magic := int32(upper[idx])<<8 + int32(lower[idx])
|
||||||
springMonth := (magic&0x800000)>>23 + 1
|
springMonth := (magic&0x800000)>>23 + 1
|
||||||
springDay := (magic & 0x7FFFFF) >> 18
|
springDay := (magic & 0x7FFFFF) >> 18
|
||||||
if springMonth == int32(month) && springDay == int32(day) {
|
if !useGoto && springMonth == int32(month) && springDay == int32(day) {
|
||||||
return 1, 1, false, "正月初一"
|
return 1, 1, false, "正月初一"
|
||||||
}
|
}
|
||||||
if !useGoto && (springMonth > int32(month) || (springMonth == int32(month) && springDay > int32(day))) {
|
if !useGoto && (springMonth > int32(month) || (springMonth == int32(month) && springDay > int32(day))) {
|
||||||
|
@ -18,6 +18,7 @@ type lunarSolar struct {
|
|||||||
|
|
||||||
func Test_ChineseCalendar(t *testing.T) {
|
func Test_ChineseCalendar(t *testing.T) {
|
||||||
var testData = []lunarSolar{
|
var testData = []lunarSolar{
|
||||||
|
{Lyear: 1995, Lmonth: 12, Lday: 12, Leap: false, Year: 1996, Month: 1, Day: 31},
|
||||||
{Lyear: 2034, Lmonth: 1, Lday: 1, Leap: false, Year: 2034, Month: 2, Day: 19},
|
{Lyear: 2034, Lmonth: 1, Lday: 1, Leap: false, Year: 2034, Month: 2, Day: 19},
|
||||||
{Lyear: 2033, Lmonth: 12, Lday: 30, Leap: false, Year: 2034, Month: 2, Day: 18},
|
{Lyear: 2033, Lmonth: 12, Lday: 30, Leap: false, Year: 2034, Month: 2, Day: 18},
|
||||||
{Lyear: 2033, Lmonth: 11, Lday: 27, Leap: true, Year: 2034, Month: 1, Day: 17},
|
{Lyear: 2033, Lmonth: 11, Lday: 27, Leap: true, Year: 2034, Month: 1, Day: 17},
|
||||||
@ -37,6 +38,7 @@ func Test_ChineseCalendar(t *testing.T) {
|
|||||||
{Lyear: 2021, Lmonth: 12, Lday: 29, Leap: false, Year: 2022, Month: 1, Day: 31},
|
{Lyear: 2021, Lmonth: 12, Lday: 29, Leap: false, Year: 2022, Month: 1, Day: 31},
|
||||||
}
|
}
|
||||||
for _, v := range testData {
|
for _, v := range testData {
|
||||||
|
{
|
||||||
var lyear int = v.Year
|
var lyear int = v.Year
|
||||||
lmonth, lday, leap, desp := SolarToLunar(time.Date(v.Year, time.Month(v.Month), v.Day, 0, 0, 0, 0, time.Local))
|
lmonth, lday, leap, desp := SolarToLunar(time.Date(v.Year, time.Month(v.Month), v.Day, 0, 0, 0, 0, time.Local))
|
||||||
if lmonth > v.Month {
|
if lmonth > v.Month {
|
||||||
@ -52,4 +54,21 @@ func Test_ChineseCalendar(t *testing.T) {
|
|||||||
t.Fatal(v, date)
|
t.Fatal(v, date)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
var lyear int = v.Year
|
||||||
|
lmonth, lday, leap, desp := RapidSolarToLunar(time.Date(v.Year, time.Month(v.Month), v.Day, 0, 0, 0, 0, time.Local))
|
||||||
|
if lmonth > v.Month {
|
||||||
|
lyear--
|
||||||
|
}
|
||||||
|
fmt.Println(lyear, desp, v.Year, v.Month, v.Day)
|
||||||
|
if lyear != v.Lyear || lmonth != v.Lmonth || lday != v.Lday || leap != v.Leap {
|
||||||
|
t.Fatal(v, lyear, lmonth, lday, leap, desp)
|
||||||
|
}
|
||||||
|
|
||||||
|
date := RapidLunarToSolar(v.Lyear, v.Lmonth, v.Lday, v.Leap)
|
||||||
|
if date.Year() != v.Year || int(date.Month()) != v.Month || date.Day() != v.Day {
|
||||||
|
t.Fatal(v, date)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user