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
							 | 
						||
| 
								 | 
							
								}
							 |