using System;
using System.Collections.Generic;
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable InconsistentNaming
namespace Lunar
{
///
/// 阳历年
///
public class SolarYear
{
///
/// 年
///
public int Year { get; }
///
/// 一年的月数
///
public const int MONTH_COUNT = 12;
///
/// 默认当年
///
public SolarYear()
: this(DateTime.Now)
{
}
///
/// 通过日期初始化
///
/// 日期
public SolarYear(DateTime date)
{
Year = date.Year;
}
///
/// 通过年初始化
///
/// 年
public SolarYear(int year)
{
Year = year;
}
///
/// 通过指定日期获取阳历年
///
/// 日期
/// 阳历年
public static SolarYear FromDate(DateTime date)
{
return new SolarYear(date);
}
///
/// 通过指定年份获取阳历年
///
/// 年
/// 阳历年
public static SolarYear FromYear(int year)
{
return new SolarYear(year);
}
///
/// 本年的阳历月列表
///
public List Months
{
get
{
var l = new List(MONTH_COUNT);
var m = new SolarMonth(Year, 1);
l.Add(m);
for (var i = 1; i < MONTH_COUNT; i++)
{
l.Add(m.Next(i));
}
return l;
}
}
///
/// 获取往后推几年的阳历年,如果要往前推,则年数用负数
///
/// 年数
/// 阳历年
public SolarYear Next(int years)
{
return new SolarYear(Year + years);
}
///
public override string ToString()
{
return Year + "";
}
///
/// 完整字符串输出
///
public string FullString => Year + "年";
}
}