2010-01-30 13 views
7

ईद की तुलना करने के लिए एक तारीख को देखना पसंद करता है, तो यह बहुत की तरह शनिवार से पहले है:दिनांक समय dayOfWeek तुलना

 //Check if Saturday YET 
     if (MYWorkDay.DayOfWeek < DateTime.DayOfWeek.Saturday) 
      IGottaWork(); 
     else 
      Party(); 

ऐसा करने का कोई तरीका नहीं हो रहा है।

क्या कोई तरीका है?

अग्रिम धन्यवाद

+0

क्या आप int और तुलना करने के लिए नहीं डाले जा सकते हैं? – stusmith

उत्तर

11

ऐसा क्यों नहीं?

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

मैं देख रहा हूँ मैं गलत क्या कर रहा था। मुझे DayOfWeek से पहले डेटटाइम की आवश्यकता नहीं है। बेवकूफ मुझे :) मदद – Greycrow

+0

मैं बस अपना ब्लॉग पर पोस्ट करने के लिए धन्यवाद मेरी पसंदीदा कस्टम विस्तार के तरीकों में और बीच में से दो (एक जवाब यहाँ के रूप में उपयुक्त नहीं मालूम था)। कभी-कभी मुझे लगता है कि मैं अपना कोड दस्तावेज़ की तरह दिखने की कोशिश कर रहा हूं। http://www.josheinstein.com/blog/index.php/2010/01/in-between – Josh

+0

कि अजीब है ... संपादन इतिहास में यह मेरे dayOfWeek सामान संपादन से पता चलता ... सब मैं अपने संपादन में किया था बदलें || सेवा मेरे &&। – Josh

0

इस प्रयास करें:

if (new [] {DayOfWeek.Saturday, DayOfWeek.Sunday}.Contains(d.DayOfWeek)) { 
    // party :D 
} else { 
    // work D: 
} 
1

सप्ताह का दिन एक enum पिछले तत्व इसलिए 6 पूर्णांक मामले में के रूप में 0 के रूप में रविवार और शनिवार के साथ प्रारंभ हो रहा है। इसकी तुलना करते समय सोचें।

1

आप बल्कि बजाय तुलना एक सूची की जांच करना होगा, तो आप भी ऐसा कर सकता है:

if ((MYWorkDay.DayOfWeek.CompareTo(DayOfWeek.Sunday) > 0) && (MYWorkDay.DayOfWeek.CompareTo(DayOfWeek.Saturday) < 0)) 
{ 
     IGottaWork(); 
} 
else 
{ 
     Party(); 
} 
3

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(); 
संबंधित मुद्दे