using OrpaonEMS.Model.Enums; using System; namespace OrpaonEMS.App.Com { /// /// 特殊的峰谷时间模型 /// public class SpecialPeakValley { /// /// 放电开始时间 其他 /// public string OtherDisChargStartTime { get; set; } = "08:00"; /// /// 放电结束时间 其他 /// public string OtherDisChargEndTime { get; set; } = "23:00"; /// /// 充电开始时间 通用 /// public string ChargStartTime { get; set; } = "23:00"; /// /// 充电结束时间 通用 /// public string ChargEndTime { get; set; } = "06:00"; /// /// 放电开始时间 7-8月份 /// public string JulyAndAugustDisChargStartTime { get; set; } = "11:00"; /// /// 放电结束时间 7-8月份 /// public string JulyAndAugustDisChargEndTime { get; set; } = "23:00"; /// /// 获取特殊的充放电的信息 /// /// public ElePVEnum GetSpecialPeakValley() { //特殊月份 if (DateTime.Now.Month == 7 || DateTime.Now.Month == 8) { if (GetIsTimeSpan(DateTime.Now.ToString("HH:mm"), JulyAndAugustDisChargStartTime, JulyAndAugustDisChargEndTime)) { return ElePVEnum.Peak; } else if (GetIsTimeSpan(DateTime.Now.ToString("HH:mm"), ChargStartTime, ChargEndTime)) { return ElePVEnum.Valley; } else { return ElePVEnum.Flat; } } else//正常月份 { if (GetIsTimeSpan(DateTime.Now.ToString("HH:mm"), OtherDisChargStartTime, OtherDisChargEndTime)) { return ElePVEnum.Peak; } else if (GetIsTimeSpan(DateTime.Now.ToString("HH:mm"), ChargStartTime, ChargEndTime)) { return ElePVEnum.Valley; } else { return ElePVEnum.Flat; } } } /// /// 判断时间是否在 某一时间段内 /// /// /// public bool GetIsTimeSpan(string timeStr, string startTime, string endTime) { //判断当前时间是否在工作时间段内 //string _strWorkingDayAM = "08:30";//工作时间上午08:30 //string _strWorkingDayPM = "17:30"; TimeSpan dspStart = DateTime.Parse(startTime).TimeOfDay; TimeSpan dspEnd = DateTime.Parse(endTime).TimeOfDay; //string time1 = "2017-2-17 8:10:00"; DateTime t1 = Convert.ToDateTime(timeStr); TimeSpan dspNow = t1.TimeOfDay; if (dspNow > dspStart && dspNow < dspEnd) { return true; } else if (dspStart > dspEnd)//时间区间处于跨天的状态 { if (dspNow >= dspStart || dspNow <= dspEnd) { return true; } } return false; } } }