public static 八卦八节旺衰 八节旺衰(this 八卦 卦, 节气节令 八节) { if (!八卦八节旺衰字典.ContainsKey(八节)) { throw new Exception($"当前节气[{八节}]不是八节,无法匹配旺衰"); } var 序列 = 八卦八节旺衰字典[八节]; var 序数 = 序列.IndexOf(卦); return(枚举转换类 <八卦八节旺衰> .获取枚举(序数)); }
static void 卦类测试(八卦, 八卦, string 测试卦名, string 测试卦象名) { var 卦 = new 六十四卦(, ); Console.WriteLine($"上{卦.客卦.名称}下{卦.主卦.名称}"); Console.WriteLine($"卦名:\t{卦.卦名}"); Console.WriteLine($"卦象名:\t{卦.卦象名}"); Assert.IsTrue(卦.客卦.称 ==.称); Assert.IsTrue(卦.主卦.称 ==.称); Assert.IsTrue(卦.卦名 == 测试卦名); Assert.IsTrue(卦.卦象名 == 测试卦象名); Console.WriteLine($"-----------------------------"); }
public static 节气节令 八节旺衰(this 八卦 卦, 八卦八节旺衰 旺衰) { var 旺衰序数 = 枚举转换类 <八卦八节旺衰> .获取序数(旺衰); foreach (var 字典 in 八卦八节旺衰字典) { var 查卦 = 字典.Value[旺衰序数]; if (查卦 == 卦) { return(字典.Key); } } throw new Exception($"未找到匹配的节气枚举,当前输入:[{旺衰},{卦.名称}]"); }
public void 方位测试() { var 卦列 = new 八卦[] { 八卦.乾, 八卦.兑, 八卦.离, 八卦.震, 八卦.巽, 八卦.坎, 八卦.艮, 八卦.坤 }; Assert.IsTrue(八卦.巽.方位 == 八方方位.东南); Assert.IsTrue(八卦.坎.方位 == 八方方位.正北); Console.WriteLine(); foreach (var 卦 in 卦列) { Console.Write(卦.方位 + " "); } Console.WriteLine(); }
static void 爻值测试(八卦, 八卦, string 测试卦名, string 测试爻序) { var 卦 = new 六十四卦(, ); var 爻序 = 六十四卦.还原爻序(卦.爻值); Assert.IsTrue(卦.卦名 == 测试卦名); Assert.IsTrue(爻序 == 测试爻序); Console.WriteLine($"卦名:{卦.卦象名}"); foreach (var 爻 in 爻序.Reverse()) { switch (爻) { case '0': Console.WriteLine("---- ----"); break; case '1': Console.WriteLine("----------"); break; } } Console.WriteLine(); }
public static int 获取八卦序数(八卦 卦) { return(枚举转换类 <八卦枚举> .获取序数(卦.称)); }