private bool 日月并明格(PaiPan pan) { // 日月位于三方四正中,且太阳在巳,太阴在酉或太阳在辰,太阴在戌,为本格。 BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫); Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] }; Gong taiyang = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "太阳")); Gong taiyin = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "太阴")); // 日月位于三方四正中 if (taiyang != null && taiyin != null) { // 太阳在巳,太阴在酉 if (taiyang.ZhiString == "巳" && taiyin.ZhiString == "酉") { return(true); } // 太阳在辰,太阴在戌 if (taiyang.ZhiString == "辰" && taiyin.ZhiString == "戌") { return(true); } } return(false); }
private bool 日月反背格(PaiPan pan) { // 太阳在戌宫坐命,此时太阴在辰宫;或太阴在辰宫坐命,太阳在戌宫。 if (pan.MingGong.ZhiString == "戌") { if (pan.MingGong.Stars.Exists(s => s.Name == "太阳")) { var gong = pan.Gongs.First(g => g.ZhiString == "辰"); if (gong.Stars.Exists(s => s.Name == "太阴")) { return(true); } } } if (pan.MingGong.ZhiString == "辰") { if (pan.MingGong.Stars.Exists(s => s.Name == "太阴")) { var gong = pan.Gongs.First(g => g.ZhiString == "戌"); if (gong.Stars.Exists(s => s.Name == "太阳")) { return(true); } } } return(false); }
private bool 巨机同宫格(PaiPan pan) { // 巨门、天机二星在卯宫或酉宫坐命,且无化忌同宫。 // 卯宫或酉宫坐命 if (pan.MingGong.ZhiString != "卯" && pan.MingGong.ZhiString != "酉") { return(false); } // 巨门、天机二星坐命 if (!pan.MingGong.Stars.Exists(s => s.Name == "巨门") || !pan.MingGong.Stars.Exists(s => s.Name == "天机")) { return(false); } // 无化忌同宫 //if (pan.MingGong.Stars.Exists(s => s.Name == "化忌")) // return false; if (pan.MingGong.Stars.Exists(s => "忌" == s.Hua)) { return(false); } return(true); }
private bool 刑忌夹印格(PaiPan pan) { // 天相受化忌和天梁于左右邻宫相夹;或天相受化忌和擎羊于左右邻宫相夹。 var gong = pan.Gongs.First(g => g.Stars.Exists(s => s.Name == "天相")); if (gong != null) { if (pan.MingGong.Previous.Stars.Exists(s => "忌" == s.Hua) && pan.MingGong.Next.Stars.Exists(s => s.Name == "天梁")) { return(true); } if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "天梁") && pan.MingGong.Next.Stars.Exists(s => "忌" == s.Hua)) { return(true); } if (pan.MingGong.Previous.Stars.Exists(s => "忌" == s.Hua) && pan.MingGong.Next.Stars.Exists(s => s.Name == "擎羊")) { return(true); } if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "擎羊") && pan.MingGong.Next.Stars.Exists(s => "忌" == s.Hua)) { return(true); } } return(false); }
private bool 辅拱文星格(PaiPan pan) { // 文昌、文曲在命宫,有辅弼两星在三方四正拱照或左右邻宫相夹。 if (pan.MingGong.Stars.Exists(s => s.Name == "文昌") && pan.MingGong.Stars.Exists(s => s.Name == "文曲")) { BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫); Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] }; Gong g1 = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "左辅")); Gong g2 = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "右弼")); if (g1 != null && g2 != null) { return(true); } if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "左辅") && pan.MingGong.Next.Stars.Exists(s => s.Name == "右弼")) { return(true); } if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "右弼") && pan.MingGong.Next.Stars.Exists(s => s.Name == "左辅")) { return(true); } } return(false); }
public FuQiGong GetResult(PaiPan pan) { FuQiGong result = base.GetResult <FuQiGong>(pan, GongIndex.夫妻宫, 3); //命宫主星爱情分析 result.AiQingFenXi = new AiQingFenXi(); var stars = pan.MingGong.Stars.Select(s => s.Name); foreach (var item in dal.s8) { if (stars.Contains(item.name.Substring(0, 2))) { result.AiQingFenXi.StarId = int.Parse(item.id); result.AiQingFenXi.Name = item.name; result.AiQingFenXi.aiqingguan = item.aiqingguan; result.AiQingFenXi.jianyi = item.jianyi; result.AiQingFenXi.shihe = item.shihe; var liangdu = pan.MingGong.Stars.First(s => s.Name == item.name.Substring(0, 2)).LiangDu; if (liangdu.HasValue && liangdu.Value < 0) { result.AiQingFenXi.liangdu = item.ruoxian; } else { result.AiQingFenXi.liangdu = item.miaowang; } break; //一定break } } return(result); }
public MingGong GetResult(PaiPan pan) { MingGong result = base.GetResult <MingGong>(pan, GongIndex.命宫, pan.IsMale ? 0 : 1); //身 var shen = pan.Gongs.First(g => g.Is_Shen); result.ShenGongPosition = shen.Name; result.ShenGongContent = dal.s3.Find(s => shen.Name.Contains(s.name)).text; //分析 s10_xingdi fenxi = null; if (result.ZhuXing.Count == 2) { fenxi = dal.s10.Find(s => s.id == string.Format("{0}#{1}", result.ZhuXing[0].Id, result.ZhuXing[1].Id)); } else { fenxi = dal.s10.Find(s => s.id == result.ZhuXing[0].Id.ToString()); } result.Youdian = fenxi.youdian; result.Quedian = fenxi.quedian; result.Fenxi = fenxi.fenxi; return(result); }
private bool 财禄夹马格(PaiPan pan) { // 天马守命宫,二左右临宫有武曲与化禄来夹,或为武曲与禄存来夹。 if (pan.MingGong.Stars.Exists(s => s.Name == "天马")) { if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "武曲") && pan.MingGong.Next.Stars.Exists(s => "禄" == s.Hua)) { return(true); } if (pan.MingGong.Previous.Stars.Exists(s => "禄" == s.Hua) && pan.MingGong.Next.Stars.Exists(s => s.Name == "武曲")) { return(true); } if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "武曲") && pan.MingGong.Next.Stars.Exists(s => s.Name == "禄存")) { return(true); } if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "禄存") && pan.MingGong.Next.Stars.Exists(s => s.Name == "武曲")) { return(true); } } return(false); }
private bool 君臣庆会格(PaiPan pan) { // 命宫有紫微星,且于三方四正中有至少有左辅、右弼任何一星加会或同宫,或两星于两临宫相夹。 if (pan.MingGong.Stars.Exists(s => s.Name == "紫薇")) { BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫); Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] }; Gong g1 = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "左辅")); Gong g2 = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "右弼")); // 左辅、右弼任何一星加会或同宫 if (g1 != null || g2 != null) { return(true); } // 两星于两临宫相夹 if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "左辅") && pan.MingGong.Next.Stars.Exists(s => s.Name == "右弼")) { return(true); } if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "右弼") && pan.MingGong.Next.Stars.Exists(s => s.Name == "左辅")) { return(true); } } return(false); }
private bool 命无正曜格(PaiPan pan) { // 命宫里无任何十四颗主星坐命。 if (!pan.MingGong.Stars.Exists(s => s.Type == Star.StarType.主星)) { return(true); } return(false); }
private void btnGeJu_Click(object sender, EventArgs e) { DateTime dateTime = this.dpBirthDate.Value; ChineseCalendar cc = new ChineseCalendar(dateTime); PaiPan pan = new PaiPan(cc, this.ckMan.Checked); var eg = new Engine(@".\Data\"); this.txtBrithday.Text = eg.GeJuAnalyzer.GetResult(pan).ToString(); }
private static string FormatFoot(PaiPan pan) { return(@"</td> </tr> </table> </div> </body> </html>"); }
public IList <CellData> parseGong(PaiPan pan) { List <CellData> datas = new List <CellData>(); foreach (Gong g in pan.Gongs) { CellData cd = new CellData(); cd.zhiStr = g.ZhiString; if (g.Is_Shen) { cd.gongName.Add("身宫"); } cd.gongName.Add(g.Name); cd.ganStr = g.GanString; if (g.DaXian_To == 0) { cd.daXian = string.Empty; } else { cd.daXian = string.Format("{0}-{1}", g.DaXian_From, g.DaXian_To); } foreach (var s in g.Stars) { if (dal.Dic_ZhuXing.ContainsKey(s.Name)) { cd.zhuXing.Add(s); } else if (dal.Dic_JiXing.ContainsKey(s.Name) || dal.Dic_XiongXing.ContainsKey(s.Name)) { cd.fuXing.Add(s); if (dal.Dic_XiongXing.ContainsKey(s.Name)) { cd.xiongXing.Add(s); } } else if (s.Type == Star.StarType.博士十二 || s.Type == Star.StarType.年前十二 || s.Type == Star.StarType.岁前十二) { cd.s2Xing.Add(s); } else if (s.Type == Star.StarType.长生十二) { cd.changSheng = s; } else { cd.s1Xing.Add(s); } } datas.Add(cd); } return(datas); }
private bool 命里逢空格(PaiPan pan) { // 地劫、地空二星或其中之一星守命。 if (pan.MingGong.Stars.Exists(s => s.Name == "地劫") || pan.MingGong.Stars.Exists(s => s.Name == "地空")) { return(true); } return(false); }
/// <summary> /// 获取流年财运指数 /// </summary> /// <param name="pan"></param> /// <returns></returns> public float GetLiuNianCaiboScore(PaiPan pan) { var caiboMing = pan.Gongs.First(g => g.Name == GongIndex.财帛宫.ToString()); var caiboXian = pan.Gongs.First(g => g.XianName == GongIndex.财帛宫.ToString()); var caiboLiu = pan.Gongs.First(g => g.LiuName == GongIndex.财帛宫.ToString()); var scoreMing = CaiboScore(pan, caiboMing); var scoreXian = CaiboScore(pan, caiboXian); var scoreLiu = CaiboScore(pan, caiboLiu); return(scoreMing * ming_weight + scoreXian * xian_weight + scoreLiu * liu_weight); }
private bool 英星入庙格(PaiPan pan) { // 破申守命居子或午宫。 if (pan.MingGong.ZhiString == "子" || pan.MingGong.ZhiString == "午") { if (pan.MingGong.Stars.Exists(s => s.Name == "破申")) { return(true); } } return(false); }
private bool 七杀朝斗格(PaiPan pan) { // 七杀于子或午或寅或申宫守命。 if (pan.MingGong.ZhiString == "子" || pan.MingGong.ZhiString == "午" || pan.MingGong.ZhiString == "寅" || pan.MingGong.ZhiString == "申") { if (pan.MingGong.Stars.Exists(s => s.Name == "七杀")) { return(true); } } return(false); }
public ShiYeGong GetResult(PaiPan pan) { ShiYeGong result = base.GetResult <ShiYeGong>(pan, GongIndex.事业宫, 8); result.ShiYeFenXi = new ShiYeFenXi(); foreach (var item in dal.s9) { if (result.ZhuXing.Exists(x => x.Id == item.id)) { result.ShiYeFenXi.StarId = item.id; result.ShiYeFenXi.Name = item.name; result.ShiYeFenXi.juese = item.juese; result.ShiYeFenXi.zhiye = item.zhiye; result.ShiYeFenXi.zongping = item.zongping; result.ShiYeFenXi.jianyi = item.jianyi; int zhi = result.SelfGong.Zhi > 6 ? result.SelfGong.Zhi - 6 : result.SelfGong.Zhi; switch (zhi) { case 1: result.ShiYeFenXi.chenggongmijue = item.ziwu; break; case 2: result.ShiYeFenXi.chenggongmijue = item.chouwei; break; case 3: result.ShiYeFenXi.chenggongmijue = item.yinshen; break; case 4: result.ShiYeFenXi.chenggongmijue = item.maoyou; break; case 5: result.ShiYeFenXi.chenggongmijue = item.chenxu; break; default: result.ShiYeFenXi.chenggongmijue = item.sihai; break; } break; } } return(result); }
private bool 将星得地格(PaiPan pan) { // 武曲坐命在辰或戌宫。 if (pan.MingGong.ZhiString == "辰" || pan.MingGong.ZhiString == "戌") { if (pan.MingGong.Stars.Exists(s => s.Name == "武曲")) { return(true); } } return(false); }
private bool 风流彩杖格(PaiPan pan) { // 在寅宫,贪狼坐命,遇陀罗同宫。 if (pan.MingGong.ZhiString == "寅") { if (pan.MingGong.Stars.Exists(s => s.Name == "贪狼") && pan.MingGong.Stars.Exists(s => s.Name == "陀罗")) { return(true); } } return(false); }
private bool 左右同宫格(PaiPan pan) { // 命宫在丑或未宫,左辅右弼同宫,为本格。 if (pan.MingGong.ZhiString == "丑" || pan.MingGong.ZhiString == "未") { if (pan.MingGong.Stars.Exists(s => s.Name == "左辅") && pan.MingGong.Stars.Exists(s => s.Name == "右弼")) { return(true); } } return(false); }
private bool 紫府朝垣格(PaiPan pan) { // 紫薇、天府于三方四正照命。 BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫); if (sfsz.DuiZhaoGong.Stars.Exists(s => s.Name == "紫薇") && sfsz.DuiZhaoGong.Stars.Exists(s => s.Name == "天府")) { return(true); } return(false); }
private bool 极向离明格(PaiPan pan) { // 紫薇在午宫坐命 if (pan.MingGong.ZhiString == "午") { if (pan.MingGong.Stars.Exists(s => s.Name == "紫薇")) { return(true); } } return(false); }
private bool 贞杀同宫格(PaiPan pan) { // 廉贞、七杀同在同在丑或未宫守命。 if (pan.MingGong.ZhiString == "丑" || pan.MingGong.ZhiString == "未") { if (pan.MingGong.Stars.Exists(s => s.Name == "廉贞") && pan.MingGong.Stars.Exists(s => s.Name == "七杀")) { return(true); } } return(false); }
private bool 寿星入庙格(PaiPan pan) { // 天梁守命,入午宫。 if (pan.MingGong.ZhiString == "午") { if (pan.MingGong.Stars.Exists(s => s.Name == "天梁")) { return(true); } } return(false); }
private void button2_Click(object sender, EventArgs e) { DateTime dateTime = this.dpBirthDate.Value; ChineseCalendar cc = new ChineseCalendar(dateTime); PaiPan pan = new PaiPan(cc, this.ckMan.Checked); ChineseCalendar cliu = new ChineseCalendar(this.dpLiuDate.Value); pan.Liu(cliu); this.txtBrithday.Text = this.txtBrithday.Text + "\n\n" + pan.TestLiu; }
private bool 月朗天门格(PaiPan pan) { // 太阴在亥宫守命,为本格。 if (pan.MingGong.ZhiString == "亥") { if (pan.MingGong.Stars.Exists(s => s.Name == "太阴")) { return(true); } } return(false); }
private bool 石中隐玉格(PaiPan pan) { // 巨门在子或午宫坐命。 if (pan.MingGong.ZhiString == "子" || pan.MingGong.ZhiString == "午") { if (pan.MingGong.Stars.Exists(s => s.Name == "巨门")) { return(true); } } return(false); }
private bool 雄宿朝垣格(PaiPan pan) { // 廉贞在申或寅宫守命。 if (pan.MingGong.ZhiString == "申" || pan.MingGong.ZhiString == "寅") { if (pan.MingGong.Stars.Exists(s => s.Name == "廉贞")) { return(true); } } return(false); }
public IList <KeyValuePair <GongIndex, int> > Get12GongScore(PaiPan pan) { var ret = new List <KeyValuePair <GongIndex, int> >(12); for (int i = 0; i < 12; i++) { var index = (GongIndex)i; var gong = base.GetResult <BasicGong>(pan, index, 0); var score = GetScore(gong, index); ret.Add(new KeyValuePair <GongIndex, int>(index, score)); } return(ret); }