public static ArrayList calcXunKong(DateTime dt) { //初始化 农历来计算相应的日期 _24daysCalc.ChineseCalendar cc = new _24daysCalc.ChineseCalendar(dt); ArrayList list = new ArrayList(); String riqi1 = cc.GanZhiDateString; String riqi2 = cc.ChineseHour; String [] year = riqi1.Split('年'); String[] month = year[1].Split('月'); String[] day = month[1].Split('日'); //下面的是每一个 用神的干支算法 //list.Add(year[0]); //list.Add(month[0]); //list.Add(day[0]); //list.Add(riqi2); list.Add(getXKongAlg(year[0])); list.Add(getXKongAlg(month[0])); list.Add(getXKongAlg(day[0])); list.Add(getXKongAlg(riqi2)); return(list); }
public static String calcXunShou(DateTime dt) { //初始化 农历来计算相应的日期 _24daysCalc.ChineseCalendar cc = new _24daysCalc.ChineseCalendar(dt); //计算出来的干支历的时辰 String time = cc.ChineseHour; //计算对应 时辰的旬首 char tian = time.ToCharArray()[0]; char di = time.ToCharArray()[1]; //地支-天干=六甲旬数 int t = Convert.ToInt32(Enum.Parse(typeof(TianGan), "" + tian)); int d = Convert.ToInt32(Enum.Parse(typeof(DiZhi), "" + di)); int res = -1; if (d < t) { res = (d + 12) - t; } else { res = d - t; } String resStr = ""; //判断余数 0子 2寅 4辰 6午 8申 10戌 switch (res) { case 0: resStr = "甲子旬"; break; case 2: resStr = "甲寅旬"; break; case 4: resStr = "甲辰旬"; break; case 6: resStr = "甲午旬"; break; case 8: resStr = "甲申旬"; break; case 10: resStr = "甲戌旬"; break; default: throw new Exception("旬首计算错误!"); break; } return(resStr); }