using System; using System.Collections.Generic; // ReSharper disable InconsistentNaming // ReSharper disable IdentifierTypo // ReSharper disable MemberCanBePrivate.Global namespace Lunar.Util { /// /// 佛历工具 /// public static class FotoUtil { /// /// 观音斋日期 /// public static readonly string[] DAY_ZHAI_GUAN_YIN = { "1-8", "2-7", "2-9", "2-19", "3-3", "3-6", "3-13", "4-22", "5-3", "5-17", "6-16", "6-18", "6-19", "6-23", "7-13", "8-16", "9-19", "9-23", "10-2", "11-19", "11-24", "12-25" }; private const string DJ = "犯者夺纪"; private const string JS = "犯者减寿"; private const string SS = "犯者损寿"; private const string XL = "犯者削禄夺纪"; private const string JW = "犯者三年内夫妇俱亡"; private static readonly FotoFestival Y = new FotoFestival("杨公忌"); private static readonly FotoFestival T = new FotoFestival("四天王巡行", "", true); private static readonly FotoFestival D = new FotoFestival("斗降", DJ, true); private static readonly FotoFestival S = new FotoFestival("月朔", DJ, true); private static readonly FotoFestival W = new FotoFestival("月望", DJ, true); private static readonly FotoFestival H = new FotoFestival("月晦", JS, true); private static readonly FotoFestival L = new FotoFestival("雷斋日", JS, true); private static readonly FotoFestival J = new FotoFestival("九毒日", "犯者夭亡,奇祸不测"); private static readonly FotoFestival R = new FotoFestival("人神在阴", "犯者得病", true, "宜先一日即戒"); private static readonly FotoFestival M = new FotoFestival("司命奏事", JS, true, "如月小,即戒廿九"); private static readonly FotoFestival HH = new FotoFestival("月晦", JS, true, "如月小,即戒廿九"); /// /// 因果犯忌 /// public static readonly Dictionary> FESTIVAL = new Dictionary> { {"1-1", new List(new[] { new FotoFestival("天腊,玉帝校世人神气禄命", XL), S })}, {"1-3", new List(new[] { new FotoFestival("万神都会", DJ), D })}, {"1-5", new List(new[] { new FotoFestival("五虚忌") })}, {"1-6", new List(new[] { new FotoFestival("六耗忌"), L })}, {"1-7", new List(new[] { new FotoFestival("上会日", SS) })}, {"1-8", new List(new[] { new FotoFestival("五殿阎罗天子诞", DJ), T })}, {"1-9", new List(new[] { new FotoFestival("玉皇上帝诞", DJ) })}, {"1-13", new List(new[] { Y })}, {"1-14", new List(new[] { new FotoFestival("三元降", JS), T })}, {"1-15", new List(new[] { new FotoFestival("三元降", JS), new FotoFestival("上元神会", DJ), W, T })}, {"1-16", new List(new[] { new FotoFestival("三元降", JS) })}, {"1-19", new List(new[] { new FotoFestival("长春真人诞") })}, {"1-23", new List(new[] { new FotoFestival("三尸神奏事"), T })}, {"1-25", new List(new[] { H, new FotoFestival("天地仓开日", "犯者损寿,子带疾") })}, {"1-27", new List(new[] { D })}, {"1-28", new List(new[] { R })}, {"1-29", new List(new[] { T })}, {"1-30", new List(new[] { HH, M, T })}, {"2-1", new List(new[] { new FotoFestival("一殿秦广王诞", DJ), S })}, {"2-2", new List(new[] { new FotoFestival("万神都会", DJ), new FotoFestival("福德土地正神诞", "犯者得祸") })}, {"2-3", new List(new[] { new FotoFestival("文昌帝君诞", XL), D })}, {"2-6", new List(new[] { new FotoFestival("东华帝君诞"), L })}, {"2-8", new List(new[] { new FotoFestival("释迦牟尼佛出家", DJ), new FotoFestival("三殿宋帝王诞", DJ), new FotoFestival("张大帝诞", DJ), T })}, {"2-11", new List(new[] { Y })}, {"2-14", new List(new[] { T })}, {"2-15", new List(new[] { new FotoFestival("释迦牟尼佛涅槃", XL), new FotoFestival("太上老君诞", XL), new FotoFestival("月望", XL, true), T })}, {"2-17", new List(new[] { new FotoFestival("东方杜将军诞") })}, {"2-18", new List(new[] { new FotoFestival("四殿五官王诞", XL), new FotoFestival("至圣先师孔子讳辰", XL) })}, {"2-19", new List(new[] { new FotoFestival("观音大士诞", DJ) })}, {"2-21", new List(new[] { new FotoFestival("普贤菩萨诞") })}, {"2-23", new List(new[] { T })}, {"2-25", new List(new[] { H })}, {"2-27", new List(new[] { D })}, {"2-28", new List(new[] { R })}, {"2-29", new List(new[] { T })}, {"2-30", new List(new[] { HH, M, T })}, {"3-1", new List(new[] { new FotoFestival("二殿楚江王诞", DJ), S })}, {"3-3", new List(new[] { new FotoFestival("玄天上帝诞", DJ), D })}, {"3-6", new List(new[] { L })}, {"3-8", new List(new[] { new FotoFestival("六殿卞城王诞", DJ), T })}, {"3-9", new List(new[] { new FotoFestival("牛鬼神出", "犯者产恶胎"), Y })}, {"3-12", new List(new[] { new FotoFestival("中央五道诞") })}, {"3-14", new List(new[] { T })}, {"3-15", new List(new[] { new FotoFestival("昊天上帝诞", DJ), new FotoFestival("玄坛诞", DJ), W, T })}, {"3-16", new List(new[] { new FotoFestival("准提菩萨诞", DJ) })}, {"3-19", new List(new[] { new FotoFestival("中岳大帝诞"), new FotoFestival("后土娘娘诞"), new FotoFestival("三茅降") })}, {"3-20", new List(new[] { new FotoFestival("天地仓开日", SS), new FotoFestival("子孙娘娘诞") })}, {"3-23", new List(new[] { T })}, {"3-25", new List(new[] { H })}, {"3-27", new List(new[] { new FotoFestival("七殿泰山王诞"), D })}, {"3-28", new List(new[] { R, new FotoFestival("苍颉至圣先师诞", XL), new FotoFestival("东岳大帝诞") })}, {"3-29", new List(new[] { T })}, {"3-30", new List(new[] { HH, M, T })}, {"4-1", new List(new[] { new FotoFestival("八殿都市王诞", DJ), S })}, {"4-3", new List(new[] { D })}, {"4-4", new List(new[] { new FotoFestival("万神善会", "犯者失瘼夭胎"), new FotoFestival("文殊菩萨诞") })}, {"4-6", new List(new[] { L })}, {"4-7", new List(new[] { new FotoFestival("南斗、北斗、西斗同降", JS), Y })}, {"4-8", new List(new[] { new FotoFestival("释迦牟尼佛诞", DJ), new FotoFestival("万神善会", "犯者失瘼夭胎"), new FotoFestival("善恶童子降", "犯者血死"), new FotoFestival("九殿平等王诞"), T })}, {"4-14", new List(new[] { new FotoFestival("纯阳祖师诞", JS), T })}, {"4-15", new List(new[] { W, new FotoFestival("钟离祖师诞"), T })}, {"4-16", new List(new[] { new FotoFestival("天地仓开日", SS) })}, {"4-17", new List(new[] { new FotoFestival("十殿转轮王诞", DJ) })}, {"4-18", new List(new[] { new FotoFestival("天地仓开日", SS), new FotoFestival("紫徽大帝诞", SS) })}, {"4-20", new List(new[] { new FotoFestival("眼光圣母诞") })}, {"4-23", new List(new[] { T })}, {"4-25", new List(new[] { H })}, {"4-27", new List(new[] { D })}, {"4-28", new List(new[] { R })}, {"4-29", new List(new[] { T })}, {"4-30", new List(new[] { HH, M, T })}, {"5-1", new List(new[] { new FotoFestival("南极长生大帝诞", DJ), S })}, {"5-3", new List(new[] { D })}, {"5-5", new List(new[] { new FotoFestival("地腊", XL), new FotoFestival("五帝校定生人官爵", XL), J, Y })}, {"5-6", new List(new[] { J, L })}, {"5-7", new List(new[] { J })}, {"5-8", new List(new[] { new FotoFestival("南方五道诞"), T })}, {"5-11", new List(new[] { new FotoFestival("天地仓开日", SS), new FotoFestival("天下都城隍诞") })}, {"5-12", new List(new[] { new FotoFestival("炳灵公诞") })}, {"5-13", new List(new[] { new FotoFestival("关圣降", XL) })}, {"5-14", new List(new[] { new FotoFestival("夜子时为天地交泰", JW), T })}, {"5-15", new List(new[] { W, J, T })}, {"5-16", new List(new[] { new FotoFestival("九毒日", JW), new FotoFestival("天地元气造化万物之辰", JW) })}, {"5-17", new List(new[] { J })}, {"5-18", new List(new[] { new FotoFestival("张天师诞") })}, {"5-22", new List(new[] { new FotoFestival("孝娥神诞", DJ) })}, {"5-23", new List(new[] { T })}, {"5-25", new List(new[] { J, H })}, {"5-26", new List(new[] { J })}, {"5-27", new List(new[] { J, D })}, {"5-28", new List(new[] { R })}, {"5-29", new List(new[] { T })}, {"5-30", new List(new[] { HH, M, T })}, {"6-1", new List(new[] { S })}, {"6-3", new List(new[] { new FotoFestival("韦驮菩萨圣诞"), D, Y })}, {"6-5", new List(new[] { new FotoFestival("南赡部洲转大轮", SS) })}, {"6-6", new List(new[] { new FotoFestival("天地仓开日", SS), L })}, {"6-8", new List(new[] { T })}, {"6-10", new List(new[] { new FotoFestival("金粟如来诞") })}, {"6-14", new List(new[] { T })}, {"6-15", new List(new[] { W, T })}, {"6-19", new List(new[] { new FotoFestival("观世音菩萨成道", DJ) })}, {"6-23", new List(new[] { new FotoFestival("南方火神诞", "犯者遭回禄"), T })}, {"6-24", new List(new[] { new FotoFestival("雷祖诞", XL), new FotoFestival("关帝诞", XL) })}, {"6-25", new List(new[] { H })}, {"6-27", new List(new[] { D })}, {"6-28", new List(new[] { R })}, {"6-29", new List(new[] { T })}, {"6-30", new List(new[] { HH, M, T })}, {"7-1", new List(new[] { S, Y })}, {"7-3", new List(new[] { D })}, {"7-5", new List(new[] { new FotoFestival("中会日", SS, false, "一作初七") })}, {"7-6", new List(new[] { L })}, {"7-7", new List(new[] { new FotoFestival("道德腊", XL), new FotoFestival("五帝校生人善恶", XL), new FotoFestival("魁星诞", XL) })}, {"7-8", new List(new[] { T })}, {"7-10", new List(new[] { new FotoFestival("阴毒日", "", false, "大忌") })}, {"7-12", new List(new[] { new FotoFestival("长真谭真人诞") })}, {"7-13", new List(new[] { new FotoFestival("大势至菩萨诞", JS) })}, {"7-14", new List(new[] { new FotoFestival("三元降", JS), T })}, {"7-15", new List(new[] { W, new FotoFestival("三元降", DJ), new FotoFestival("地官校籍", DJ), T })}, {"7-16", new List(new[] { new FotoFestival("三元降", JS) })}, {"7-18", new List(new[] { new FotoFestival("西王母诞", DJ) })}, {"7-19", new List(new[] { new FotoFestival("太岁诞", DJ) })}, {"7-22", new List(new[] { new FotoFestival("增福财神诞", XL) })}, {"7-23", new List(new[] { T })}, {"7-25", new List(new[] { H })}, {"7-27", new List(new[] { D })}, {"7-28", new List(new[] { R })}, {"7-29", new List(new[] { Y, T })}, {"7-30", new List(new[] { new FotoFestival("地藏菩萨诞", DJ), HH, M, T })}, {"8-1", new List(new[] { S, new FotoFestival("许真君诞") })}, {"8-3", new List(new[] { D, new FotoFestival("北斗诞", XL), new FotoFestival("司命灶君诞", "犯者遭回禄") })}, {"8-5", new List(new[] { new FotoFestival("雷声大帝诞", DJ) })}, {"8-6", new List(new[] { L })}, {"8-8", new List(new[] { T })}, {"8-10", new List(new[] { new FotoFestival("北斗大帝诞") })}, {"8-12", new List(new[] { new FotoFestival("西方五道诞") })}, {"8-14", new List(new[] { T })}, {"8-15", new List(new[] { W, new FotoFestival("太明朝元", "犯者暴亡", false, "宜焚香守夜"), T })}, {"8-16", new List(new[] { new FotoFestival("天曹掠刷真君降", "犯者贫夭") })}, {"8-18", new List(new[] { new FotoFestival("天人兴福之辰", "", false, "宜斋戒,存想吉事") })}, {"8-23", new List(new[] { new FotoFestival("汉恒候张显王诞"), T })}, {"8-24", new List(new[] { new FotoFestival("灶君夫人诞") })}, {"8-25", new List(new[] { H })}, {"8-27", new List(new[] { D, new FotoFestival("至圣先师孔子诞", XL), Y })}, {"8-28", new List(new[] { R, new FotoFestival("四天会事") })}, {"8-29", new List(new[] { T })}, {"8-30", new List(new[] { new FotoFestival("诸神考校", "犯者夺算"), HH, M, T })}, {"9-1", new List(new[] { S, new FotoFestival("南斗诞", XL), new FotoFestival("北斗九星降世", DJ, false, "此九日俱宜斋戒") })}, {"9-3", new List(new[] { D, new FotoFestival("五瘟神诞") })}, {"9-6", new List(new[] { L })}, {"9-8", new List(new[] { T })}, {"9-9", new List(new[] { new FotoFestival("斗母诞", XL), new FotoFestival("酆都大帝诞"), new FotoFestival("玄天上帝飞升") })}, {"9-10", new List(new[] { new FotoFestival("斗母降", DJ) })}, {"9-11", new List(new[] { new FotoFestival("宜戒") })}, {"9-13", new List(new[] { new FotoFestival("孟婆尊神诞") })}, {"9-14", new List(new[] { T })}, {"9-15", new List(new[] { W, T })}, {"9-17", new List(new[] { new FotoFestival("金龙四大王诞", "犯者遭水厄") })}, {"9-19", new List(new[] { new FotoFestival("日宫月宫会合", JS), new FotoFestival("观世音菩萨诞", JS) })}, {"9-23", new List(new[] { T })}, {"9-25", new List(new[] { H, Y })}, {"9-27", new List(new[] { D })}, {"9-28", new List(new[] { R })}, {"9-29", new List(new[] { T })}, {"9-30", new List(new[] { new FotoFestival("药师琉璃光佛诞", "犯者危疾"), HH, M, T })}, {"10-1", new List(new[] { S, new FotoFestival("民岁腊", DJ), new FotoFestival("四天王降", "犯者一年内死") })}, {"10-3", new List(new[] { D, new FotoFestival("三茅诞") })}, {"10-5", new List(new[] { new FotoFestival("下会日", JS), new FotoFestival("达摩祖师诞", JS) })}, {"10-6", new List(new[] { L, new FotoFestival("天曹考察", DJ) })}, {"10-8", new List(new[] { new FotoFestival("佛涅槃日", "", false, "大忌色欲"), T })}, {"10-10", new List(new[] { new FotoFestival("四天王降", "犯者一年内死") })}, {"10-11", new List(new[] { new FotoFestival("宜戒") })}, {"10-14", new List(new[] { new FotoFestival("三元降", JS), T })}, {"10-15", new List(new[] { W, new FotoFestival("三元降", DJ), new FotoFestival("下元水府校籍", DJ), T })}, {"10-16", new List(new[] { new FotoFestival("三元降", JS), T })}, {"10-23", new List(new[] { Y, T })}, {"10-25", new List(new[] { H })}, {"10-27", new List(new[] { D, new FotoFestival("北极紫徽大帝降") })}, {"10-28", new List(new[] { R })}, {"10-29", new List(new[] { T })}, {"10-30", new List(new[] { HH, M, T })}, {"11-1", new List(new[] { S })}, {"11-3", new List(new[] { D })}, {"11-4", new List(new[] { new FotoFestival("至圣先师孔子诞", XL) })}, {"11-6", new List(new[] { new FotoFestival("西岳大帝诞") })}, {"11-8", new List(new[] { T })}, {"11-11", new List(new[] { new FotoFestival("天地仓开日", DJ), new FotoFestival("太乙救苦天尊诞", DJ) })}, {"11-14", new List(new[] { T })}, {"11-15", new List(new[] { new FotoFestival("月望", "上半夜犯男死 下半夜犯女死"), new FotoFestival("四天王巡行", "上半夜犯男死 下半夜犯女死") })}, {"11-17", new List(new[] { new FotoFestival("阿弥陀佛诞") })}, {"11-19", new List(new[] { new FotoFestival("太阳日宫诞", "犯者得奇祸") })}, {"11-21", new List(new[] { Y })}, {"11-23", new List(new[] { new FotoFestival("张仙诞", "犯者绝嗣"), T })}, {"11-25", new List(new[] { new FotoFestival("掠刷大夫降", "犯者遭大凶"), H })}, {"11-26", new List(new[] { new FotoFestival("北方五道诞") })}, {"11-27", new List(new[] { D })}, {"11-28", new List(new[] { R })}, {"11-29", new List(new[] { T })}, {"11-30", new List(new[] { HH, M, T })}, {"12-1", new List(new[] { S })}, {"12-3", new List(new[] { D })}, {"12-6", new List(new[] { new FotoFestival("天地仓开日", JS), L })}, {"12-7", new List(new[] { new FotoFestival("掠刷大夫降", "犯者得恶疾") })}, {"12-8", new List(new[] { new FotoFestival("王侯腊", DJ), new FotoFestival("释迦如来成佛之辰"), T, new FotoFestival("初旬内戊日,亦名王侯腊", DJ) })}, {"12-12", new List(new[] { new FotoFestival("太素三元君朝真") })}, {"12-14", new List(new[] { T })}, {"12-15", new List(new[] { W, T })}, {"12-16", new List(new[] { new FotoFestival("南岳大帝诞") })}, {"12-19", new List(new[] { Y })}, {"12-20", new List(new[] { new FotoFestival("天地交道", "犯者促寿") })}, {"12-21", new List(new[] { new FotoFestival("天猷上帝诞") })}, {"12-23", new List(new[] { new FotoFestival("五岳诞降"), T })}, {"12-24", new List(new[] { new FotoFestival("司今朝天奏人善恶", "犯者得大祸") })}, {"12-25", new List(new[] { new FotoFestival("三清玉帝同降,考察善恶", "犯者得奇祸"), H })}, {"12-27", new List(new[] { D })}, {"12-28", new List(new[] { R })}, {"12-29", new List(new[] { new FotoFestival("华严菩萨诞"), T })}, {"12-30", new List(new[] { new FotoFestival("诸神下降,察访善恶", "犯者男女俱亡") })} }; /// /// 纪念日 /// public static readonly Dictionary> OTHER_FESTIVAL = new Dictionary> { {"1-1", new List(new[] { "弥勒菩萨圣诞" })}, {"1-6", new List(new[] { "定光佛圣诞" })}, {"2-8", new List(new[] { "释迦牟尼佛出家" })}, {"2-15", new List(new[] { "释迦牟尼佛涅槃" })}, {"2-19", new List(new[] { "观世音菩萨圣诞" })}, {"2-21", new List(new[] { "普贤菩萨圣诞" })}, {"3-16", new List(new[] { "准提菩萨圣诞" })}, {"4-4", new List(new[] { "文殊菩萨圣诞" })}, {"4-8", new List(new[] { "释迦牟尼佛圣诞" })}, {"4-15", new List(new[] { "佛吉祥日" })}, {"4-28", new List(new[] { "药王菩萨圣诞" })}, {"5-13", new List(new[] { "伽蓝菩萨圣诞" })}, {"6-3", new List(new[] { "韦驮菩萨圣诞" })}, {"6-19", new List(new[] { "观音菩萨成道" })}, {"7-13", new List(new[] { "大势至菩萨圣诞" })}, {"7-15", new List(new[] { "佛欢喜日" })}, {"7-24", new List(new[] { "龙树菩萨圣诞" })}, {"7-30", new List(new[] { "地藏菩萨圣诞" })}, {"8-15", new List(new[] { "月光菩萨圣诞" })}, {"8-22", new List(new[] { "燃灯佛圣诞" })}, {"9-9", new List(new[] { "摩利支天菩萨圣诞" })}, {"9-19", new List(new[] { "观世音菩萨出家" })}, {"9-30", new List(new[] { "药师琉璃光佛圣诞" })}, {"10-5", new List(new[] { "达摩祖师圣诞" })}, {"10-20", new List(new[] { "文殊菩萨出家" })}, {"11-17", new List(new[] { "阿弥陀佛圣诞" })}, {"11-19", new List(new[] { "日光菩萨圣诞" })}, {"12-8", new List(new[] { "释迦牟尼佛成道" })}, {"12-23", new List(new[] { "监斋菩萨圣诞" })}, {"12-29", new List(new[] { "华严菩萨圣诞" })} }; /// /// 27星宿,佛教从印度传入中国,印度把28星宿改为27星宿,把牛宿(牛金牛)纳入了女宿(女土蝠)。 /// public static readonly string[] XIU_27 = { "角", "亢", "氐", "房", "心", "尾", "箕", "斗", "女", "虚", "危", "室", "壁", "奎", "娄", "胃", "昴", "毕", "觜", "参", "井", "鬼", "柳", "星", "张", "翼", "轸" }; /// /// 每月初一的27星宿偏移 /// private static readonly int[] XIU_OFFSET = { 11, 13, 15, 17, 19, 21, 24, 0, 2, 4, 7, 9 }; /// /// 获取27星宿 /// /// 佛历月 /// 佛历日 /// 星宿 public static string GetXiu(int month, int day) { return XIU_27[(XIU_OFFSET[Math.Abs(month) - 1] + day - 1) % XIU_27.Length]; } } }