【发布时间】:2019-10-26 03:56:11
【问题描述】:
我发现这不会在指定时间等待。
我一直在努力学习 c#,但还不知道所有语法到底是什么。我只是想知道是否有更好的方法来完成这项任务。
while (DateTime.Now.DayOfWeek == DayOfWeek.Saturday
&& DateTime.Now.DayOfWeek == DayOfWeek.Sunday
&& DateTime.Now.Hour <=8
&& DateTime.Now.Hour >=18
&& DateTime.Now.Minute <=9)
{
Random waitTime = new Random();
int milliseconds = waitTime.Next(120000, 180000);
System.Threading.Thread.Sleep(milliseconds);
}
我希望它在星期六或星期日等待,如果它在 0800 之前、1800 之后,或者如果它在每小时的前十分钟。
问题是,我看到它在星期一晚上 7:05 退出循环,这是两个条件。我是否正确使用了 && 函数,还是应该用其他东西替换它?
【问题讨论】:
-
你不能同时是周六和周日...此外
DateTime.Now.DayOfWeek == DayOfWeek.Saturday && DateTime.Now.DayOfWeek == DayOfWeek.Sunday在我们所在的星球上不可能是真的!我认为你想了解 || (或运算符)并理解布尔逻辑。 C1 OR C2 表示 C1 或 C2 可以为真以评估为真。 C1 AND C2 表示 C1 和 C2 都必须为真才能计算为真。 -
另外,DateTime.Now.Hour 不能同时小于 8 和大于 18。
-
您需要了解正确使用
&&和||以及优先顺序。你知道&&的真正含义/作用吗? -
您的逻辑使用了所有“与”,但您的描述中有许多“或”。
-
您也永远不需要在循环中创建新的随机生成器,否则您的下一个问题可能是经常被问到的问题。
标签: c# datetime wait dayofweek andand