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;
}
}
}