public QueIndex GetQueIndexBySoAndSo(string textCuaNgoaiQuai, string textCuaNoiQuai, AmLich amLich, bool batThuong) { int tongNgoaiQuai = GetTongCuaQuai(textCuaNgoaiQuai); int tongNoiQuai = GetTongCuaQuai(textCuaNoiQuai); // Tiên thiên đoán bằng số nên không cần giờ. Hậu thiên đoán bằng bát quái nên cần thêm giờ vào để tìm hào động. int chiNumber = batThuong ? amLich.GioAm.Chi.Id : 0; var queIndex = new QueIndex { NgoaiQuaiIndex = (tongNgoaiQuai - 1 + 8) % 8, NoiQuaiIndex = (tongNoiQuai - 1 + 8) % 8, HaoDongIndex = (tongNgoaiQuai + tongNoiQuai + chiNumber) % 6, }; var sb = new StringBuilder(); sb.AppendLine($"1. Ngoại quái: số {tongNgoaiQuai} % 8 = {queIndex.NgoaiQuaiIndex + 1} = quẻ {BatQuai.All[queIndex.NgoaiQuaiIndex].Name}"); sb.AppendLine(); sb.AppendLine($"2. Nội quái: số {tongNoiQuai} % 8 = {queIndex.NoiQuaiIndex + 1} = quẻ {BatQuai.All[queIndex.NoiQuaiIndex].Name}"); sb.AppendLine(); sb.AppendLine($"3. Động hào: ngoại quái {tongNgoaiQuai} + nội quái {tongNoiQuai}{GetGioDescChoCongThucBatThuong(amLich.GioAm, batThuong)} = {tongNgoaiQuai + tongNoiQuai + chiNumber} % 6 = {queIndex.HaoDongNumber}"); queIndex.Desc = sb.ToString(); return(queIndex); }
public QueIndex GetQueIndexByTime(AmLich amLich, string extraText = "") { int soHoacChu = GetTongCuaQuai(extraText); int tongNgoaiQuai = GetTongNamThangNgay(amLich) + soHoacChu; int tongNoiQuai = GetTongNamThangNgayGio(amLich) + soHoacChu; var queIndex = new QueIndex { NgoaiQuaiIndex = (tongNgoaiQuai - 1 + 8) % 8, NoiQuaiIndex = (tongNoiQuai - 1 + 8) % 8, HaoDongIndex = tongNoiQuai % 6, }; var sb = new StringBuilder(); sb.AppendLine($"1. Ngoại quái: năm {amLich.NamAm.Chi.Name} {amLich.NamAm.Chi.Id} + tháng {amLich.LunarMonth} + ngày {amLich.LunarDay} + số {soHoacChu} = {tongNgoaiQuai} % 8 = {queIndex.NgoaiQuaiIndex + 1} = quẻ {BatQuai.All[queIndex.NgoaiQuaiIndex].Name}"); sb.AppendLine(); sb.AppendLine($"2. Nội quái: năm {amLich.NamAm.Chi.Name} {amLich.NamAm.Chi.Id} + tháng {amLich.LunarMonth} + ngày {amLich.LunarDay} + số {soHoacChu} + giờ {amLich.GioAm.Chi.Name} {amLich.GioAm.Chi.Id} = {tongNoiQuai} % 8 = {queIndex.NoiQuaiIndex + 1} = quẻ {BatQuai.All[queIndex.NoiQuaiIndex].Name}"); sb.AppendLine(); sb.AppendLine($"3. Động hào: tổng nội quái {tongNoiQuai} % 6 = {queIndex.HaoDongNumber}"); queIndex.Desc = sb.ToString(); return(queIndex); }
public QueIndex GetQueIndexBySoAndTime(AmLich amLich, string textCuaQuai) { int tongNgoaiQuai = GetTongNamThangNgayGio(amLich); int tongNoiQuai = GetTongCuaQuai(textCuaQuai); var queIndex = new QueIndex { NgoaiQuaiIndex = (tongNgoaiQuai - 1 + 8) % 8, NoiQuaiIndex = (tongNoiQuai - 1 + 8) % 8, HaoDongIndex = (tongNgoaiQuai + tongNoiQuai) % 6, }; var sb = new StringBuilder(); sb.AppendLine($"1. Ngoại quái: năm {amLich.NamAm.Chi.Name} {amLich.NamAm.Chi.Id} + tháng {amLich.LunarMonth} + ngày {amLich.LunarDay} + giờ {amLich.GioAm.Chi.Name} {amLich.GioAm.Chi.Id} = {tongNgoaiQuai} % 8 = {queIndex.NgoaiQuaiIndex + 1} = quẻ {BatQuai.All[queIndex.NgoaiQuaiIndex].Name}"); sb.AppendLine(); sb.AppendLine($"2. Nội quái: số {tongNoiQuai} % 8 = {queIndex.NoiQuaiIndex + 1} = quẻ {BatQuai.All[queIndex.NoiQuaiIndex].Name}"); sb.AppendLine(); sb.AppendLine($"3. Động hào: ngoại quái {tongNgoaiQuai} + nội quái {tongNoiQuai} = {tongNgoaiQuai + tongNoiQuai} % 6 = {queIndex.HaoDongNumber}"); queIndex.Desc = sb.ToString(); return(queIndex); }