/// <summary> /// Từ địa chi của giờ, lấy ra thiên can của giờ. /// </summary> /// <param name="chi"></param> /// <returns></returns> public ThienCan GetCanCuaGio(DiaChi chi) { int chiIndex = 0; for (int i = 0; i < DiaChi.All.Count; i++) { if (chi == DiaChi.All[i]) { chiIndex = i; break; } } ThienCan canGioTi = GetCanGioTi(); int canGioTiIndex = 0; for (int i = 0; i < ThienCan.All.Count; i++) { if (canGioTi == ThienCan.All[i]) { canGioTiIndex = i; break; } } int canIndex = (canGioTiIndex + chiIndex) % 10; return(ThienCan.All[canIndex]); }
private bool IsDuKhi(DiaChi chi) { // Tháng 3 kiến Thìn, Mộc còn dư khí mùa xuân. if (Chi == Thin && chi.NguHanh == Moc) { return(true); } // Tháng 6 kiến Mùi, Hỏa còn dư khí mùa hạ. if (Chi == Mui && chi.NguHanh == Hoa) { return(true); } // Tháng 9 kiến Tuất, Kim còn dư khí mùa thu. if (Chi == Tuat && chi.NguHanh == Kim) { return(true); } // Tháng 12 kiến Sửu, Thủy còn dư khí mùa đông. if (Chi == Suu && chi.NguHanh == Thuy) { return(true); } return(false); }
/// <summary> /// Tử: bị nhật thần hoặc nguyệt kiến khắc. /// </summary> /// <param name="chi"></param> /// <returns></returns> public bool IsTuyet(DiaChi chi) { if (IsDuKhi(chi)) { return(false); } return(Chi.NguHanh.Khac == chi.NguHanh); }
/// <summary> /// Hưu: sinh ra nhật thần hoặc nguyệt kiến nên mất lực. /// </summary> /// <param name="chi"></param> /// <returns></returns> public bool IsHuu(DiaChi chi) { if (IsDuKhi(chi)) { return(false); } return(Chi.NguHanh.SinhBoi == chi.NguHanh); }
/// <summary> /// Từ hành của hào, kiểm tra xem nhật thìn hay nguyệt kiến có bị mộ. /// Giai đoạn mộ sẽ rơi vào thìn tuất sửu mùi. /// </summary> /// <param name="hanh"></param> /// <param name="chi"></param> /// <returns></returns> public static bool IsMo(NguHanh hanh, DiaChi chi) { if (hanh == Tho) { // Hành thổ không thể có mộ ở Thìn giống Thủy, // vì không lẽ Thìn thổ (nhật kiến, nguyệt kiến) cũng mộ ở Thìn? return(false); } return(GetThoiKi(hanh, chi) == Mo); }
public CanChi GetCanChiGio() { if (_gioAm == null) { DiaChi chi = GetChiCuaGio(SolarDate); ThienCan can = GetCanCuaGio(chi); _gioAm = new CanChi { Can = can, Chi = chi }; } return(_gioAm); }
public TruongSinhNguHanh(NguHanh hanh, DiaChi chiBatDau) { NguHanh = hanh; var index = chiBatDau.Id - 1; var lastIndex = KinhDichCommon.DiaChi.All.Count - 1; for (int i = 0; i <= lastIndex; i++) { if (index > lastIndex) { index = 0; } DiaChi.Add(KinhDichCommon.DiaChi.All[index]); index++; } }
/// <summary> /// Từ ngũ hành của nguyệt kiến kiểm tra xem địa chi thuộc thời kì nào của vòng trường sinh. /// </summary> /// <param name="hanh">ngũ hành của tháng</param> /// <param name="chi">địa chi của hào</param> /// <returns></returns> public static VongTruongSinh GetThoiKi(NguHanh hanh, DiaChi chi) { foreach (var truongSinh in TruongSinhList) { if (hanh == truongSinh.NguHanh) { for (int i = 0; i < truongSinh.DiaChi.Count; i++) { if (chi == truongSinh.DiaChi[i]) { return(All[i]); } } } } throw new System.Exception("Wrong code in VongTruongSinh."); }
private void Add10CanChi(CanChi canChiBatDau) { All.Add(canChiBatDau); CanChi canChiTruoc = canChiBatDau; CanChi canChi; // Add other 9 CanChi. for (int i = 0; i < SoNgay - 1; i++) { canChi = canChiTruoc.Next(); All.Add(canChi); canChiTruoc = canChi; } Khong1 = canChiTruoc.Chi.Next(); Khong2 = Khong1.Next(); }
/// <summary> /// Vượng hoặc tướng. /// </summary> /// <param name="chi"></param> /// <returns></returns> public bool IsVuongTuong(DiaChi chi) { return(IsVuong(chi) || IsTuong(chi)); }
/// <summary> /// Kiểm tra 1 địa chi có phải lâm không vào nhật thần hay không? /// </summary> /// <param name="nhatThan"></param> /// <param name="chi"></param> /// <returns></returns> public bool IsLamKhong(DiaChi chi) { return(chi == Tuan.Khong1 || chi == Tuan.Khong2); }
/// <summary> /// Chi dương (Tí, ...) sẽ đi với can dương là Giáp, Bính, Mậu, Canh và Nhâm. /// Chi âm (Hợi, ...) sẽ đi với can âm là Ất, Đinh, Kỷ, Tân, Quý. /// </summary> /// <param name="chi"></param> /// <returns></returns> public static ThienCan GetCanDauTienHopLe(DiaChi chi) { return(chi.Duong ? CanDuong[0] : CanAm[0]); }
/// <summary> /// Tướng. Được nhật thìn hoặc nguyệt kiến sinh. /// </summary> /// <param name="chi"></param> /// <returns></returns> public bool IsTuong(DiaChi chi) { return(Chi.NguHanh.Sinh == chi.NguHanh); }
/// <summary> /// Hưu tù. /// </summary> /// <param name="chi"></param> /// <returns></returns> public bool IsHuuTu(DiaChi chi) { return(IsHuu(chi) || IsTu(chi) || IsTuyet(chi)); }