gpt4 book ai didi

c# - 夜间检查功能 c#

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:17:03 26 4
gpt4 key购买 nike

我们需要一个包含 2 个日期的夜间公式。这应该是一个 bool 函数,它接收 2 个日期(它们的时差不超过 12 小时)并检查夜间时间,夜间时间设置为从 00:00 到 6:00 am,该函数在以下情况下产生结果:

1/1/18 20:00 - 2/1/18 7:00 true

2/1/18 1:00 - 2/1/18 7:00 true

2/1/18 1:00 - 2/1/18 5:15 true

1/1/18 20:00 - 1/1/18 23:00 false

1/1/18 20:00 - 2/1/18 3:30 true

我的工作(并非适用于所有情况)

     private bool CheckNightHours(DateTime start, DateTime end)
{
var nightStart = new DateTime(start.Year, start.Month, start.Day ,0 ,0, 0);// 00:00;
var nightEnd = new DateTime(end.Year, end.Month, end.Day, 6, 0, 0); // 6:00;
bool result = false;

if (end < nightStart)
return false;
else {
if (start > nightStart && end > nightStart)
result = false;
else
if ((end >= nightEnd) || (end > nightStart && end < nightEnd))
result = true;
else
return result;
}
}

最佳答案

也许这会奏效

public static bool IsNight(DateTime from, DateTime to)
=> (to > from) && (from < from.Date.AddHours(6) || to < to.Date.AddHours(6) || to > from.Date.AddDays(1));

更新

或者根据 @ZoharPeled 的建议更好

public static bool IsNight(DateTime from, DateTime to)
=> (to > from) && ( rom.Hour < 6 || to.Hour < 6 || to > from.Date.AddDays(1));

前提是,

  • to 大于 from(完整性检查)
  • from 不到早上 6 点(所有其他 to 都是有效的夜晚)
  • to 不到早上 6 点,(所有其他 fromm 都是有效的夜晚)
  • to 隔天到from,必须过夜

我想你可以添加另一个 24 小时的健全性检查

注意:这只适用于夜间宣布从午夜开始

关于c# - 夜间检查功能 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53029712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com