Id喜歡比較的日期,看它是否是星期六,像這樣前:日期時間DAYOFWEEK比較
//Check if Saturday YET
if (MYWorkDay.DayOfWeek < DateTime.DayOfWeek.Saturday)
IGottaWork();
else
Party();
似乎有沒有辦法做到這一點。
有沒有辦法?
在此先感謝
Id喜歡比較的日期,看它是否是星期六,像這樣前:日期時間DAYOFWEEK比較
//Check if Saturday YET
if (MYWorkDay.DayOfWeek < DateTime.DayOfWeek.Saturday)
IGottaWork();
else
Party();
似乎有沒有辦法做到這一點。
有沒有辦法?
在此先感謝
爲什麼不呢?
if (MYWorkDay.DayOfWeek != DayOfWeek.Saturday
&& MYWorkDay.DayOfWeek != DayOfWeek.Sunday)
{
IGottaWork();
}
else
Party();
甚至更好:
List<DayOfWeek> partyDays = new List<DayOfWeek> {
DayOfWeek.Saturday, DayOfWeek.Sunday
};
if (partyDays.Contains(MYWorkDay.DayOfWeek))
Party();
else
IGottaWork();
我明白我做錯了什麼。在DayOfWeek之前我不需要DateTime。傻我:) 感謝您的幫助 – Greycrow 2010-01-30 22:51:34
我剛剛發佈在我的博客(似乎不適合作爲答案)兩個我最喜歡的自定義擴展方法之一和之間。有時候我想我花太多時間試圖讓我的代碼看起來像一個文檔。 http://www.josheinstein.com/blog/index.php/2010/01/in-between – Josh 2010-01-30 22:58:50
這很奇怪......在編輯歷史中,它顯示我編輯DayOfWeek的東西......我所做的所有編輯工作都是改變||至 &&。 – Josh 2010-01-30 23:01:31
試試這個:
if (new [] {DayOfWeek.Saturday, DayOfWeek.Sunday}.Contains(d.DayOfWeek)) {
// party :D
} else {
// work D:
}
星期幾是開始星期日爲0和週六在整數條件的最後一個元素,因此6枚舉。想一想,比較時。
如果你寧願做比較,而不是檢查列表,你也可以這樣做:
if ((MYWorkDay.DayOfWeek.CompareTo(DayOfWeek.Sunday) > 0) && (MYWorkDay.DayOfWeek.CompareTo(DayOfWeek.Saturday) < 0))
{
IGottaWork();
}
else
{
Party();
}
從MSDN:
的常量在星期幾枚舉值從 範圍DayOfWeek.Sunday到DayOfWeek.Saturday。如果轉換爲整數,其值爲 的值範圍從零(表示DayOfWeek.Sunday)到六個 (表示DayOfWeek.Saturday)。
因此,您還可以使用大於和小於運算符來進行計算。
//Check if Saturday YET
if (MYWorkDay.DayOfWeek < DayOfWeek.Saturday && MYWorkDay.DayOfWeek > DayOfWeek.Sunday)
IGottaWork();
else
Party();
你不能轉換成int和比較嗎? – stusmith 2010-01-30 22:49:35