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 + "年"; } }