using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IStation.Model.Monitor { /// /// 日段 /// public class DaySlot : JsonModel, ICronSlot { /// /// 是否从前一天开始 /// public bool Pre { get; set; } = false; /// /// 开始小时 0-23 /// public int Start { get; set; } = 0; /// /// 结束小时 1-24 /// public int End { get; set; } = 24; /// /// 验证 /// public bool Verify() { if (this.Start < 0 || this.Start > 23) return false; if (this.End < 1 || this.End > 24) return false; var start = this.Start; var end = this.End; if (this.Pre) { end += 24; } if (end - start > 24) return false; if (end - start <= 0) return false; return true; } /// /// 获取开始时间 /// public DateTime GetStartTime(DateTime rhs) { var start = 0; if (Verify()) { start = this.Start; if (Pre) start = start - 24; } var dt = rhs.AddDays(-1).Date; dt = dt.AddHours(start); return dt; } /// /// 获取结束时间 /// public DateTime GetEndTime(DateTime rhs) { var end = 24; if (Verify()) end = this.End; var dt = rhs.AddDays(-1).Date; dt = dt.AddHours(end); return dt; } } }