116 lines
3.5 KiB
C#
116 lines
3.5 KiB
C#
using OrpaonEMS.Model.Enums;
|
|
using System;
|
|
|
|
namespace OrpaonEMS.App.Com
|
|
{
|
|
/// <summary>
|
|
/// 特殊的峰谷时间模型
|
|
/// </summary>
|
|
public class SpecialPeakValley
|
|
{
|
|
/// <summary>
|
|
/// 放电开始时间 其他
|
|
/// </summary>
|
|
public string OtherDisChargStartTime { get; set; } = "08:00";
|
|
|
|
/// <summary>
|
|
/// 放电结束时间 其他
|
|
/// </summary>
|
|
public string OtherDisChargEndTime { get; set; } = "23:00";
|
|
|
|
|
|
/// <summary>
|
|
/// 充电开始时间 通用
|
|
/// </summary>
|
|
public string ChargStartTime { get; set; } = "23:00";
|
|
|
|
/// <summary>
|
|
/// 充电结束时间 通用
|
|
/// </summary>
|
|
public string ChargEndTime { get; set; } = "06:00";
|
|
|
|
|
|
/// <summary>
|
|
/// 放电开始时间 7-8月份
|
|
/// </summary>
|
|
public string JulyAndAugustDisChargStartTime { get; set; } = "11:00";
|
|
|
|
/// <summary>
|
|
/// 放电结束时间 7-8月份
|
|
/// </summary>
|
|
public string JulyAndAugustDisChargEndTime { get; set; } = "23:00";
|
|
|
|
|
|
/// <summary>
|
|
/// 获取特殊的充放电的信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 判断时间是否在 某一时间段内
|
|
/// </summary>
|
|
/// <param name="timeStr"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
}
|
|
}
|