使用定时器禁用在特定日期启用互联网访问

本文关键字:日期 启用 访问 互联网 定时器 | 更新日期: 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);


我对你的数据做了以下假设:

  1. 每天可能允许多次。
  2. 当网络访问不被允许时,它被禁用。
  3. 您存储您的允许日期&
    Dictionary<DateTime, List<Tuple<DateTime, DateTime>>>结构。
  4. 该结构表示日期,允许的时间列表(开始和结束)。
  5. 每天单独添加(每天允许一个字典键)。

很可能通过一些简化,你可以去掉字典结构的需要,只使用开始&