到目前为止,我已经写过这个,但我似乎可以得到它,所以操作员命令正确。我想写它,所以当它是在周一和周五之间的Excecute代码。
DayOfWeek day = DateTime.Now.DayOfWeek;
TimeSpan now = DateTime.Now.TimeOfDay;
string FromDate = string.Empty;
TimeSpan FromTime = new TimeSpan();
TimeSpan ToTime = new TimeSpan();
foreach (var key in applicationSettings.AllKeys)
{
if (key == "FromDate")
{
FromDate = applicationSettings[key];
}
if ((day >= FromDate) && (now > FromTime) && (now < ToTime))
{
// execute code here
}
我无法让FromDate正常工作。 FromTime,ToTime是上午8:00和17:00。
答案 0 :(得分:2)
在星期一和星期五之间回答&#34;&#34; 部分问题:
DayOfWeek是本周的枚举表示从星期日到星期六开始。
您可以将其存储在配置中,索引可能是表示当天最简单的方式:
<add key="FromDay" value="1" /> <!--Monday-->
<add key="ToDay" value="5" /> <!--Friday-->
现在一个简单的演员和比较法将为您提供所需的结果:
var confRead = new System.Configuration.AppSettingsReader();
var fromDay= (int)confRead.GetValue("FromDay", typeof(int));
var toDay = (int)confRead.GetValue("ToDay", typeof(int));
var result = IsValidDay(DateTime.Now, fromDay, toDay);
private bool IsValidDay(DateTime day, int fromDay = 1, int toDay = 5)
{
var testDay = (int)day.DayOfWeek;
return (fromDay > testDay && testDay > toDay);
}
您现在可以应用相同的逻辑来查找我们是否在08:00到17:00之间。使用TimeSpan和&#39; TimeOfDay&#39;
答案 1 :(得分:0)
这可以被视为一种方式。可能效率不高。但可以考虑。 您可以添加一个新变量并将FromDate转换为枚举并将其保存在那里。
DayOfWeek FromDateEnum;
if (key == "FromDate")
{
FromDate = applicationSettings[key];
Enum.TryParse<DayOfWeek>(FromDate, out FromDateEnum);
}
并将if条件更改为使用枚举而不是字符串
if ((day >= FromDateEnum ) && (now > FromTime) && (now < ToTime))
{
// execute code here
}
除此之外,您还可以使用FromDateEnum轻松管理以与DayOfWeek Enum值进行比较。