2017-04-10 79 views
-1

IM將知道代碼工作的一部分,因爲我不想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

什麼的Timer_bolovanje和Timer_godisnji功能呢? – Neil

+0

如果表格只加載一次,那麼其他2個定時器將僅在週六或週日進行/配置。如果您在週一運行代碼(並讓它運行一週),那麼其他兩個計時器將不會被觸發。 – Neil

+0

@Neil Timer_godisnji在數據庫中更新一列,並提出了由1 Timer_godisnji值,同樣的事情,但是這一次降低1的值,基本上我啓動程序,並rearly關閉它在服務器上,當我把它關掉了,因爲我做了一些更新的代碼,然後我再啓動它....我需要這些觸發器運行恆定的方式,怎麼bolovanje意味着一天病假,並godisnji意味着假期 –

回答

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() 
    } 
} 
+0

我真的不在乎,如果他甚至開始每天7次,只要它常和工作,感謝尼爾,我給它一個鏡頭=) –

0

這不是一個回答你的問題,但是,我認爲這是很危險採取枚舉(星期幾),並將其轉換爲字符串比較日子名。從你的變量我假設你是克羅地亞人,因此根據操作系統運行的語言,可能會將星期幾轉換爲不同的字符串?無論如何,我會做:

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)); 
} 
+0

我會的,值得的嘗試,是啊我是克羅地亞人哈哈,順便說一句,你認爲只要將觸發器放在form_load事件中,它會自動更新自身? –