59 lines
1.4 KiB
C#
59 lines
1.4 KiB
C#
using Kurisu.Core.CustomClass;
|
|
|
|
namespace Dlhis.Canteen.Order;
|
|
|
|
|
|
/// <summary>
|
|
/// 临时的扩展类 todo: 嵌入框架
|
|
/// </summary>
|
|
public static class TimePeriodExtensions
|
|
{
|
|
public static bool IsPresent(this TimePeriod period, DateTime dateTime)
|
|
{
|
|
int hour = dateTime.Hour;
|
|
int minute = dateTime.Minute;
|
|
IReadOnlyList<int> hourPeriod = GetHourPeriod();
|
|
if (hourPeriod.Contains(hour))
|
|
{
|
|
if (hour == period.Start.Value.Hour)
|
|
{
|
|
return minute > period.Start.Value.Minute;
|
|
}
|
|
|
|
if (hour == period.End.Value.Hour)
|
|
{
|
|
return minute < period.End.Value.Minute;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
|
|
|
|
IReadOnlyList<int> GetHourPeriod()
|
|
{
|
|
List<int> list = new List<int>();
|
|
if (period.IsCrossDay())
|
|
{
|
|
for (int i = 0; i < 25 - period.Start.Value.Hour; i++)
|
|
{
|
|
list.Add(period.Start.Value.Hour + i);
|
|
}
|
|
|
|
for (int j = 0; j < period.End.Value.Hour; j++)
|
|
{
|
|
list.Add(j + 1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int k = period.Start.Value.Hour; k < period.End.Value.Hour + 1; k++)
|
|
{
|
|
list.Add(k);
|
|
}
|
|
}
|
|
|
|
return list;
|
|
}
|
|
}
|
|
}
|