using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IStation.Model.Monitor { /// /// 年段 /// public class YearSlot : JsonModel, ICronSlot { /// /// 是否从前一年开始 /// public bool Pre { get; set; } /// /// 开始月数 1-12 /// public int Start { get; set; } = 1; /// /// 结束月数 1-12 /// public int End { get; set; } = 12; /// /// 验证 /// public bool Verify() { if (this.Start < 1 || this.Start > 12) return false; if (this.End < 1 || this.End > 12) return false; var start = this.Start; var end = this.End; if (this.Pre) { end += 12; } if (end - start < 1) return false; if (end - start > 11) return false; return true; } /// /// 获取开始时间 /// public DateTime GetStartTime(DateTime rhs) { var start = 1; if (Verify()) { start = this.Start; if (Pre) start = start - 12; } var dt = rhs.AddYears(-1); dt = new DateTime(dt.Year, 1, 1); dt = dt.AddMonths(start).AddMonths(-1); dt = dt.Date; return dt; } /// /// 获取结束时间 /// public DateTime GetEndTime(DateTime rhs) { var end = 12; if (Verify()) end = this.End; var dt = rhs.AddYears(-1); dt = new DateTime(dt.Year, 1, 1); dt = dt.AddMonths(end); return dt; } } }