天干地支推算阳阴五行的算法,字符串去重复和取不重复处理,阳阴五行生克转圈运算.
private enum 五行 { 南無观世音菩萨, 木, 火, 土, 金, 水 }
private enum 纳音五行 { 海中金, 炉中火, 大林木, 路旁土, 剑锋金, 山头火, 涧下水, 城墙土, 白腊金, 杨柳木, 泉中水, 屋上土, 霹雷火, 松柏木, 长流水, 沙中金, 山下火, 平地木, 壁上土, 金箔金, 佛光火, 天河水, 大驿土, 钗钏金, 桑松木, 大溪水, 沙中土, 天上火, 石榴木, 大海水 }
五行推算 推算 = new 五行推算();
string 阳阴五行 = ((五行)推算.干阳阴(年天干)).ToString() + ((五行)推算.支阳阴(年地支)).ToString();
string 纳音五行 = "纳音五行:" + ((纳音五行)推算.纳音五行(甲子60数)).ToString() + "。";
private class 五行推算
{
internal int 干阳阴(int 值)
{ return 值 % 2 == 0 ? 值 / 2 : 值 / 2 + 1; }
internal int 支阳阴(int 值)
{
if (new int[] { 3, 4 }.LongCount(悟空 => 悟空 == 值) > 0) return 1;
if (new int[] { 6, 7 }.LongCount(悟空 => 悟空 == 值) > 0) return 2;
if (new int[] { 9, 10 }.LongCount(悟空 => 悟空 == 值) > 0) return 4;
if (new int[] { 1, 12 }.LongCount(悟空 => 悟空 == 值) > 0) return 5;
return 3;
}
internal string 字符串去重(string 字符)
{ return new string(字符.ToArray().Distinct().ToArray()); }
internal string 字符串去复(string 元字符, string 字符)
{ return new string(元字符.ToArray().Except(字符.ToArray()).ToArray()); }
internal int 五行生前(int 值)
{ return 值 > 1 ? 值 - 1 : 5; }
internal int 五行生后(int 值)
{ return 值 > 4 ? 值 - 4 : 值 + 1; }
internal int 五行克(int 值)
{ return 值 > 3 ? 值 - 3 : 值 + 2; }
}