306 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			306 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package calendar
 | 
						|
 | 
						|
// 蜀汉朔日表
 | 
						|
func shuCals() map[int]uint32 {
 | 
						|
	return map[int]uint32{
 | 
						|
		237: 2862623744,
 | 
						|
		238: 3042255104,
 | 
						|
		239: 2874160128,
 | 
						|
		240: 1432365568,
 | 
						|
		241: 2863373824,
 | 
						|
		242: 1788883200,
 | 
						|
		243: 2907710976,
 | 
						|
		244: 1432984576,
 | 
						|
		245: 1431318016,
 | 
						|
		246: 1789764352,
 | 
						|
		247: 1520449024,
 | 
						|
		248: 2865769216,
 | 
						|
		249: 1432100864,
 | 
						|
		250: 1431319296,
 | 
						|
		251: 1520445440,
 | 
						|
		252: 2865929472,
 | 
						|
		253: 2863673088,
 | 
						|
		254: 1431315712,
 | 
						|
		255: 1520998912,
 | 
						|
		256: 1453337856,
 | 
						|
		257: 2863964416,
 | 
						|
		258: 2862625792,
 | 
						|
		259: 3041929472,
 | 
						|
		260: 1454087936,
 | 
						|
		261: 1432367360,
 | 
						|
		262: 2862622208,
 | 
						|
		263: 3578927872,
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func shuEras() []Era {
 | 
						|
	return []Era{
 | 
						|
		{
 | 
						|
			Year:              264,
 | 
						|
			Emperor:           "魏元帝",
 | 
						|
			OtherNianHaoStart: "咸熙",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              263,
 | 
						|
			Emperor:           "蜀后主",
 | 
						|
			OtherNianHaoStart: "炎兴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:    258,
 | 
						|
			Emperor: "蜀后主",
 | 
						|
			Nianhao: "景耀",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:    238,
 | 
						|
			Emperor: "蜀后主",
 | 
						|
			Nianhao: "延熙",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              223,
 | 
						|
			Emperor:           "蜀后主",
 | 
						|
			OtherNianHaoStart: "建兴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:    221,
 | 
						|
			Emperor: "蜀昭烈帝",
 | 
						|
			Nianhao: "章武",
 | 
						|
		},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func shuEraMap() map[string][][]int {
 | 
						|
	return map[string][][]int{
 | 
						|
		"炎兴": [][]int{{263, 263}},
 | 
						|
		"景耀": [][]int{{258, 263}},
 | 
						|
		"延熙": [][]int{{238, 257}},
 | 
						|
		"建兴": [][]int{{223, 237}},
 | 
						|
		"章武": [][]int{{221, 223}},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func wuCals() map[int]uint32 {
 | 
						|
	return map[int]uint32{
 | 
						|
		223: 1432367360,
 | 
						|
		224: 2862622208,
 | 
						|
		225: 3578927616,
 | 
						|
		226: 2907712768,
 | 
						|
		227: 1433281280,
 | 
						|
		228: 1431320064,
 | 
						|
		229: 1788881408,
 | 
						|
		230: 2907971328,
 | 
						|
		231: 2865771008,
 | 
						|
		232: 1431316480,
 | 
						|
		233: 1789565952,
 | 
						|
		234: 1520447232,
 | 
						|
		235: 2865767424,
 | 
						|
		236: 1431378432,
 | 
						|
		237: 3578800896,
 | 
						|
		238: 1521295616,
 | 
						|
		239: 1436562432,
 | 
						|
		240: 2862622976,
 | 
						|
		241: 3578993920,
 | 
						|
		242: 3041931264,
 | 
						|
		243: 1436558848,
 | 
						|
		244: 2863766272,
 | 
						|
		245: 2862624000,
 | 
						|
		246: 3042320896,
 | 
						|
		247: 2865771776,
 | 
						|
		248: 1431317248,
 | 
						|
		249: 2863406848,
 | 
						|
		250: 1788883456,
 | 
						|
		251: 2874156800,
 | 
						|
		252: 1431969024,
 | 
						|
		253: 1431318272,
 | 
						|
		254: 1520444416,
 | 
						|
		255: 2874185984,
 | 
						|
		256: 2863672320,
 | 
						|
		257: 1431642368,
 | 
						|
		258: 3041932032,
 | 
						|
		259: 1453336832,
 | 
						|
		260: 2863898112,
 | 
						|
		261: 2862624768,
 | 
						|
		262: 3041928448,
 | 
						|
		263: 1453955840,
 | 
						|
		264: 1432366592,
 | 
						|
		265: 2863505920,
 | 
						|
		266: 1788884224,
 | 
						|
		267: 2907712000,
 | 
						|
		268: 1433149440,
 | 
						|
		269: 1431319040,
 | 
						|
		270: 1788880640,
 | 
						|
		271: 2907872256,
 | 
						|
		272: 2865770240,
 | 
						|
		273: 1431315456,
 | 
						|
		274: 1789434112,
 | 
						|
		275: 1453337600,
 | 
						|
		276: 2866094336,
 | 
						|
		277: 2862625536,
 | 
						|
		278: 3578800128,
 | 
						|
		279: 1454087680,
 | 
						|
		280: 1436561664,
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func wuEraMap() map[string][][]int {
 | 
						|
	return map[string][][]int{
 | 
						|
		"天玺": [][]int{{276, 276}},
 | 
						|
		"天册": [][]int{{275, 276}},
 | 
						|
		"凤凰": [][]int{{272, 275}},
 | 
						|
		"建衡": [][]int{{269, 271}},
 | 
						|
		"宝鼎": [][]int{{266, 269}},
 | 
						|
		"甘露": [][]int{{265, 266}},
 | 
						|
		"元兴": [][]int{{264, 265}},
 | 
						|
		"永安": [][]int{{258, 264}},
 | 
						|
		"太平": [][]int{{256, 258}},
 | 
						|
		"五凤": [][]int{{254, 256}},
 | 
						|
		"建兴": [][]int{{252, 253}},
 | 
						|
		"太元": [][]int{{251, 252}},
 | 
						|
		"赤乌": [][]int{{238, 251}},
 | 
						|
		"嘉禾": [][]int{{232, 238}},
 | 
						|
		"黄龙": [][]int{{229, 231}},
 | 
						|
		"黄武": [][]int{{222, 229}},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func wuEras() []Era {
 | 
						|
	return []Era{
 | 
						|
		{
 | 
						|
			Year:    277,
 | 
						|
			Emperor: "吴末帝",
 | 
						|
			Nianhao: "天纪",
 | 
						|
			Dynasty: "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              276,
 | 
						|
			Emperor:           "吴末帝",
 | 
						|
			OtherNianHaoStart: "天玺",
 | 
						|
			Dynasty:           "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              275,
 | 
						|
			Emperor:           "吴末帝",
 | 
						|
			OtherNianHaoStart: "天册",
 | 
						|
			Dynasty:           "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:    272,
 | 
						|
			Emperor: "吴末帝",
 | 
						|
			Nianhao: "凤凰",
 | 
						|
			Dynasty: "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              269,
 | 
						|
			Emperor:           "吴末帝",
 | 
						|
			OtherNianHaoStart: "建衡",
 | 
						|
			Dynasty:           "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              266,
 | 
						|
			Emperor:           "吴末帝",
 | 
						|
			OtherNianHaoStart: "宝鼎",
 | 
						|
			Dynasty:           "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              265,
 | 
						|
			Emperor:           "吴末帝",
 | 
						|
			OtherNianHaoStart: "甘露",
 | 
						|
			Dynasty:           "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              264,
 | 
						|
			Emperor:           "吴末帝",
 | 
						|
			OtherNianHaoStart: "元兴",
 | 
						|
			Dynasty:           "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              258,
 | 
						|
			Emperor:           "吴景帝",
 | 
						|
			OtherNianHaoStart: "永安",
 | 
						|
			Dynasty:           "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              256,
 | 
						|
			Emperor:           "吴景帝",
 | 
						|
			OtherNianHaoStart: "太平",
 | 
						|
			Dynasty:           "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:    254,
 | 
						|
			Emperor: "吴景帝",
 | 
						|
			Nianhao: "五凤",
 | 
						|
			Dynasty: "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              252,
 | 
						|
			Emperor:           "吴景帝",
 | 
						|
			OtherNianHaoStart: "建兴",
 | 
						|
			Dynasty:           "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              251,
 | 
						|
			Emperor:           "吴大帝",
 | 
						|
			OtherNianHaoStart: "太元",
 | 
						|
			Dynasty:           "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              238,
 | 
						|
			Emperor:           "吴大帝",
 | 
						|
			OtherNianHaoStart: "赤乌",
 | 
						|
			Dynasty:           "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:    232,
 | 
						|
			Emperor: "吴大帝",
 | 
						|
			Nianhao: "嘉禾",
 | 
						|
			Dynasty: "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:              229,
 | 
						|
			Emperor:           "吴大帝",
 | 
						|
			OtherNianHaoStart: "黄龙",
 | 
						|
			Dynasty:           "吴",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Year:    222,
 | 
						|
			Emperor: "吴大帝",
 | 
						|
			Nianhao: "黄武",
 | 
						|
			Dynasty: "吴",
 | 
						|
		},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func innerSolarToLunarSanGuo(date Time) Time {
 | 
						|
	year := date.solarTime.Year()
 | 
						|
	month := int(date.solarTime.Month())
 | 
						|
	day := date.solarTime.Day()
 | 
						|
	if year >= 221 && year <= 263 {
 | 
						|
		lyear, lmonth, ganzhiMonth, lday, isLeap, ldesc := rapidLunarHan2Qing(year, month, day, 0, shuCals)
 | 
						|
		date.lunars = append(date.lunars, LunarTime{
 | 
						|
			solarDate:   date.solarTime,
 | 
						|
			year:        lyear,
 | 
						|
			month:       lmonth,
 | 
						|
			day:         lday,
 | 
						|
			leap:        isLeap,
 | 
						|
			desc:        ldesc,
 | 
						|
			comment:     "",
 | 
						|
			ganzhiMonth: ganzhiMonth,
 | 
						|
			eras:        innerEras(lyear, shuEras),
 | 
						|
		})
 | 
						|
	}
 | 
						|
	if year >= 222 && year <= 280 {
 | 
						|
		lyear, lmonth, ganzhiMonth, lday, isLeap, ldesc := rapidLunarHan2Qing(year, month, day, 0, wuCals)
 | 
						|
		date.lunars = append(date.lunars, LunarTime{
 | 
						|
			solarDate:   date.solarTime,
 | 
						|
			year:        lyear,
 | 
						|
			month:       lmonth,
 | 
						|
			day:         lday,
 | 
						|
			leap:        isLeap,
 | 
						|
			desc:        ldesc,
 | 
						|
			ganzhiMonth: ganzhiMonth,
 | 
						|
			comment:     "",
 | 
						|
			eras:        innerEras(lyear, wuEras),
 | 
						|
		})
 | 
						|
	}
 | 
						|
	return date
 | 
						|
}
 |