2012-10-08 77 views
7

我需要檢查日期選擇器中選定的日期是否不在週末。該函數需要檢查新的startdate是否是週末。如果週末發生,它還需要添加幾天到startdate。確定begindate是否爲週末

代碼應該是這樣的:

int startday = Datepicker1.SelectedDate; 
if (startdate = weekendday, startdate++) 
{ 
startdate++ //or if a sunday +2 
} 
else 
{ 
return startdate 
} 

謝謝您的幫助。

+1

該代碼甚至沒有編譯 – jeroenh

+1

我知道它不編譯它只是給你們一個方向,我想走的方式。 – Dave

+0

請至少提供一個工作代碼示例,以表明您已在此問題上付出了一些努力。 – jeroenh

回答

23
if (startdate.DayOfWeek == DayOfWeek.Saturday) 
    startdate = startdate.AddDays(2); 
else if (startdate.DayOfWeek == DayOfWeek.Sunday) 
    startdate = startdate.AddDays(1); 
+2

上查看DateTime is不可改變的。 startdate.AddDays(2)什麼都不會做。 –

+0

謝謝@Dmitry!糾正。 – M4N

0

看看DateTime.DayOfWeek記錄here

while(startday.DayOfWeek == DayOfWeek.Saturday 
     || startday.DayOfWeek == DayOfWeek.Sunday) 
{ 
    startday = startday.AddDays(1); 
} 
4

使用DayOfWeek屬性,您可以明確檢查週末日期。這樣的事情:

if ((startDate.DayOfWeek == DayOfWeek.Saturday) || 
    (startDate.DayOfWeek == DayOfWeek.Sunday)) 

當然,這是一個條件有點長。它抽象到一個輔助方法使得它乾淨了一點:

private bool IsWeekend(DateTime date) 
{ 
    return (date.DayOfWeek == DayOfWeek.Saturday) || 
      (date.DayOfWeek == DayOfWeek.Sunday) 
} 

要使用這樣的:

if (IsWeekend(startDate)) 

或者,也許乾淨了一點,你可以寫爲DateTime擴展方法:

public static bool IsWeekend(this DateTime date) 
{ 
    return (date.DayOfWeek == DayOfWeek.Saturday) || 
      (date.DayOfWeek == DayOfWeek.Sunday) 
} 

你可以這樣使用:

if (startDate.IsWeekend())