[英]check for time fall between specified time range in c#
我正在嘗試檢查當前時間是否介於下午 6 點(晚上) - 早上 7 點()(第二天)之間,如果當前時間介於兩者之間,那么我必須發送郵件:
下面是我的代碼:
private static TimeZoneInfo pacific_Standard_Time = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
private static TimeSpan Stime = DateTime.Parse("6:00:00 PM").TimeOfDay; //set start time
private static TimeSpan Etime = DateTime.Parse("7:00:00 AM").TimeOfDay; //set End time
private static string getSenderEmailID()
{
String strEmail = "";
DateTime dateTime_Time = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, pacific_Standard_Time); //get current time
//Check if current time falls between 6PM to 7AM
if ((dateTime_Time.TimeOfDay > Stime) && (dateTime_Time.TimeOfDay < Etime))
{
strEmail = ConfigurationManager.AppSettings["NewUserEmailRedirectTo"];
}
else
{
strEmail = ConfigurationManager.AppSettings["NewUserEmailTo"];
}
return strEmail;
}
但是我的代碼沒有檢查當前時間是否在下午 6 點(白天晚上)- 早上 7 點(第二天早上)之間,我在 C# 方面沒有太多經驗,請讓我知道我哪里出錯了
一個小時不能同時(沒有雙關語意)大於下午的時間和小於另一個上午的時間。
例如,偽代碼
// true && false == false
"08:00:00 PM" > "06:00:00 PM" && "08:00:00 PM" < "07:00:00 AM"
將始終評估為false
( "08:00:00 PM" > "07:00:00 AM"
為false
),與此相同
// false && true == false
"05:00:00 AM" > "06:00:00 PM" && "05:00:00 AM" < "07:00:00 AM"
將始終為false
( "05:00:00 AM" > "06:00:00 PM"
為假)
將您的條件更改為:
// Check this ------------------------VV
if ((dateTime_Time.TimeOfDay > Stime) || (dateTime_Time.TimeOfDay < Etime)) { ... }
您的問題有一些不清楚的地方。 不過,從表面上看,您的 if 條件本質上是“Time_Of_Day 是下午 6 點之后和早上 7 點之前”。 這種情況永遠不會是真實的。
如果您正在查看某一天,那么您想要的是“Time_Of_Day 是下午 6 點之后或早上 7 點之前”,並且您的條件應該寫為(dateTime_Time.TimeOfDay > Stime) || (dateTime_Time.TimeOfDay < Etime)
(dateTime_Time.TimeOfDay > Stime) || (dateTime_Time.TimeOfDay < Etime)
不過,更有可能的是,您想要實現的是跨越數天的檢查。 在這種情況下,您想要的是“Time_Of_Day 是今天下午 6 點之后或明天早上 7 點之前”。 在這種情況下,您的情況應該像
private static DateTime Stime = DateTime.Now.Date.AddHours(18);
private static DateTime Etime = DateTime.Now.Date.AddDays(1).AddHours(7);
...
if((dateTime_Time> Stime) && (dateTime_Time < Etime))
{
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.