Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }