using Lunar.Util; // ReSharper disable IdentifierTypo // ReSharper disable MemberCanBePrivate.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace Lunar.EightChar { /// /// 流年 /// public class LiuNian { /// /// 序数,0-9 /// public int Index { get; } /// /// 大运 /// public DaYun DaYun { get; } /// /// 年 /// public int Year { get; } /// /// 年龄 /// public int Age { get; } /// /// 阴历 /// public Lunar Lunar { get; } /// /// 创建流年 /// /// 大运 /// 序数 public LiuNian(DaYun daYun, int index) { DaYun = daYun; Lunar = daYun.Lunar; Index = index; Year = daYun.StartYear + index; Age = daYun.StartAge + index; } /// /// 干支 /// public string GanZhi { get { int offset = LunarUtil.GetJiaZiIndex(Lunar.JieQiTable["立春"].Lunar.YearInGanZhiExact) + Index; if (DaYun.Index > 0) { offset += DaYun.StartAge - 1; } offset %= LunarUtil.JIA_ZI.Length; return LunarUtil.JIA_ZI[offset]; } } /// /// 旬 /// public string Xun => LunarUtil.GetXun(GanZhi); /// /// 旬空(空亡) /// public string XunKong => LunarUtil.GetXunKong(GanZhi); /// /// 获取流月 /// /// 流月 public LiuYue[] GetLiuYue() { const int n = 12; var l = new LiuYue[n]; for (var i = 0; i < n; i++) { l[i] = new LiuYue(this, i); } return l; } } }