c#預設的當週第一天為星期日,最後一天為星期六
但我需要的當週第一天為星期一,最後一天為星期日,所以以下的做法,是適用於當週第一天為星期一,最後一天為星期日
下列的程式想要的判斷是..
如果使用者輸入完起始日期後,要判斷該日期是否為當週的第一天,也就是星期一
如果使用者輸入完結束日期後,要判斷該日期是否為當週的最後一天,也就是星期日
並且還要判斷起始日期是否小於紿束日期,才能再做後續處理。
以下的寫法,可能對於某些高手來說有更好的寫法,歡迎提供指教..讓程式更為精進..
//Textbox1為使用者輸入的起始日期
this.TextBox1.Text
//TextBox2為使用者輸入的結束日期
this.TextBox2.Text
//取得要比較的日期
string d1 = Convert.ToDateTime(this.TextBox1.Text ).ToString("yyyy/MM/dd");
string d2 = Convert.ToDateTime(this.TextBox2.Text ).ToString("yyyy/MM/dd");
//取得該日期的當週第一天
string firstday = Convert.ToDateTime(this.TextBox1.Text ).AddDays(-Convert.ToInt16((int)Convert.ToDateTime(this.TextBox1.Text ).DayOfWeek) + 1).ToString("yyyy/MM/dd");
//取得該日期的當週最後一天,如果取到的dayofweek為0表示星期日,則不需要再減日期
string lastday = "";
int lsint = (int)Convert.ToDateTime(this.TextBox2.Text ).DayOfWeek;
if (lsint > 0)
lastday = Convert.ToDateTime(this.TextBox2.Text ).AddDays(7 - lsint).ToString("yyyy/MM/dd");
else lastday = d2;
//起始日期錯誤,須為星期一
bool flag1 = (d1 == firstday);
//結束日期錯誤,須為星期日
bool flag2 = (d2 == lastday);
//判斷起始日期是否小於結束日期
bool flag3 = (Convert.ToDateTime(d1) < Convert.ToDateTime(d2));
留言列表