使用定时器禁用在特定日期启用互联网访问
本文关键字:日期 启用 访问 互联网 定时器 | 更新日期: 2023-09-27 17:50:11
在我的项目中,我可以在特定时间完全阻止互联网访问,但在当前日期。我使用了计时器。这个定时器检查开始时间和结束时间,也控制在每5秒禁用和启用互联网连接,使用用户给出的开始时间和结束时间。现在我想在不同的日子里做同样的事情,不仅仅是对当前日期。我想检查每天在每5秒的一天的计时器,如果一个禁用/启用的时间间隔是由用户给定的特定日期。
if (currentDate == chosenDate)
{
if ((currenttime >= starttime) && (currenttime <= endtime))
{
timerForHour.Enabled = true;
if (isConnectedToNetwork)
{
findNetworkName();
Disable(networkName);
}
}
else
{
exitFlag = true;
Enable(networkName);
}
}
else if(currentDate!=chosenDate)
{
}
这是我的代码我要在这个else if部分做什么呢?谢谢。
我认为你处理这件事的方式是错误的。不要想着"是不是今天",而要以更普遍的方式思考:"这一天是否合适,如果合适,那么我们是否在可接受的时间范围内?"在不了解更多关于如何存储您正在使用的日期/时间范围的情况下,我可以使用LINQ提供以下内容:
IsInternetAllowed = false;
DateTime dateOfInterest = datesToRestrict
.FirstOrDefault(dt => dt.Date == DateTime.Now.Date);
if (dateOfInterest != null)
{
if (timesToAllowDict.ContainsKey(DateTime.Now.Date))
{
List<Tuple<DateTime, DateTime>> lstAllowed =
timesToAllowDict[DateTime.Now.Date];
IsInternetAllowed = lstAllowed
.FirstOrDefault(time =>
DateTime.Now.Time > time.Value1 &&
DateTime.Now.Time < time.Value2) != null;
}
}
if (IsInternetAllowed)
Enable(networkName);
else
Disable(networkName);
我对你的数据做了以下假设:
- 每天可能允许多次。
- 当网络访问不被允许时,它被禁用。
- 您存储您的允许日期&
Dictionary<DateTime, List<Tuple<DateTime, DateTime>>>
结构。 - 该结构表示日期,允许的时间列表(开始和结束)。
- 每天单独添加(每天允许一个字典键)。
很可能通过一些简化,你可以去掉字典结构的需要,只使用开始&