在第一次表单加载时更新星期几?

时间:2017-04-10 07:32:48

标签: c# triggers

我想知道这部分代码是否有效,因为我不想在周六或周日触发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"每次到达午夜时自我更新并将触发器放在代码中的正确位置吗?

2 个答案:

答案 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));
}