阳阴五行推算

来源:互联网 发布:戴尔 precision 知乎 编辑:程序博客网 时间:2024/04/29 00:58

天干地支推算阳阴五行的算法,字符串去重复和取不重复处理,阳阴五行生克转圈运算.

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