我想知道这部分代码是否有效,因为我不想在周六或周日触发2个触发器:
private void Pocetna_forma_Load(object sender, EventArgs e)
{
SetUpTimer(new TimeSpan(20, 10, 00));
string proba =Convert.ToString( DateTime.Now.DayOfWeek);
if(proba!="Sunday" || proba != "Saturday")
{
Timer_bolovanje(new TimeSpan(20, 00, 00));
Timer_godisnji(new TimeSpan(20, 05, 00));
}
...
}
问题是,我的表单已加载到主服务器上,程序永远不会关闭,触发器会调用" SetUpTimer"工作得很完美,我只是好奇才能测试它,这个if语句是否有效,或者说更好的说,将串起来" proba"每次到达午夜时自我更新并将触发器放在代码中的正确位置吗?
答案 0 :(得分:1)
如何每天开始一次定时器,但是在计时器滴答声中,检查是周六还是周日?
类似的东西:
private void Pocetna_forma_Load(object sender, EventArgs e)
{
SetUpTimer(new TimeSpan(20, 10, 00));
Timer_bolovanje(new TimeSpan(20, 00, 00));
Timer_godisnji(new TimeSpan(20, 05, 00));
}
void InTimerBolovanje_Tick()
{
if(dow == DayOfWeek.Sunday || dow == DayOfWeek.Saturday)
{
DoBolovanje_Thing()
}
}
void InTimerGodisnji_Tick()
{
if(dow == DayOfWeek.Sunday || dow == DayOfWeek.Saturday)
{
Godisnji_Thing()
}
}
答案 1 :(得分:0)
这不是你问题的答案,但我认为采用枚举(DayOfWeek)并将其转换为字符串来比较日期名称是危险的。从您的变量我假设您是克罗地亚语,因此根据操作系统运行的语言,可能会将星期几转换为不同的字符串?无论如何,我会这样做:
var dow = DateTime.Now.DayOfWeek;
if(dow != DayOfWeek.Sunday || dow != DayOfWeek.Saturday)
{
Timer_bolovanje(new TimeSpan(20, 00, 00));
Timer_godisnji(new TimeSpan(20, 05, 00));
}