using Lunar.Util; // ReSharper disable IdentifierTypo // ReSharper disable MemberCanBePrivate.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace Lunar.EightChar { /// /// 小运 /// public class XiaoYun { /// /// 序数,0-9 /// public int Index { get; } /// /// 大运 /// public DaYun DaYun { get; } /// /// 年 /// public int Year { get; } /// /// 年龄 /// public int Age { get; } /// /// 是否顺推 /// public bool Forward { get; } /// /// 阴历 /// public Lunar Lunar { get; } /// /// 初始化 /// /// 大运 /// 序数,0-9 /// 是否顺推 public XiaoYun(DaYun daYun, int index, bool forward) { DaYun = daYun; Lunar = daYun.Lunar; Index = index; Year = daYun.StartYear + index; Age = daYun.StartAge + index; Forward = forward; } /// /// 干支 /// public string GanZhi { get { var offset = LunarUtil.GetJiaZiIndex(Lunar.TimeInGanZhi); var add = Index + 1; if (DaYun.Index > 0) { add += DaYun.StartAge - 1; } offset += Forward ? add : -add; var size = LunarUtil.JIA_ZI.Length; while (offset < 0) { offset += size; } offset %= size; return LunarUtil.JIA_ZI[offset]; } } /// /// 旬 /// public string Xun => LunarUtil.GetXun(GanZhi); /// /// 旬空(空亡) /// public string XunKong => LunarUtil.GetXunKong(GanZhi); } }