calendar: 补齐前104古历纪年解析与回归测试

- 为先秦与秦汉古历结果填充周、鲁、秦、西汉早期纪年信息
- 支持默认与显式古历下的年号日期解析
This commit is contained in:
2026-06-11 09:33:46 +08:00
parent a8e7513683
commit 25dc7ac0bc
7 changed files with 373 additions and 7 deletions
+20
View File
@@ -359,6 +359,16 @@ func innerParseLunar(lunar string) ([]time.Time, error) {
return []time.Time{}, err
}
if date.houMonth && date.comment != "" {
if data, known, err := lunarToSolarAncientEra(date, AncientCalendarDefault); known {
if err != nil {
return nil, err
}
var dates []time.Time
for _, v := range data {
dates = append(dates, v.Solar())
}
return dates, nil
}
return nil, fmt.Errorf("未找到对应日期")
}
if date.year != 0 && date.comment == "" {
@@ -427,6 +437,16 @@ func innerParseLunar(lunar string) ([]time.Time, error) {
if tmp, err := innerLunar2SolarHanQing(date, nanMingEraMap, nanMingCals); err == nil {
data = append(data, tmp...)
}
if date.comment != "" {
if ancientData, known, ancientErr := lunarToSolarAncientEra(date, AncientCalendarDefault); known {
if ancientErr != nil && len(data) == 0 {
return nil, ancientErr
}
for _, v := range ancientData {
data = append(data, v.Solar())
}
}
}
if len(data) == 0 {
if err == ERR_NIANHAO_NOT_FOUND {
return nil, err