2009-10-07 12 views
10

मैं एक तारीख एक प्रारूप तथाकथित 'स्ट्रिंग (सामान्यीकृत समय) में है कि, MSDN linked here देखते हैं, मैं अगर यह तिथि आज है जांच करने की जरूरत है और अगर यह एक्ससी # मैं कैसे जांचूँगा कि वर्तमान में एक स्ट्रिंग वर्तमान में है या नहीं?

करना है यह थोड़ा मेरे पास जटिल करने के लिए है एक int जो इस उदाहरण 4 में है, अगर int 4 है तो मैं जांचना चाहता हूं कि 'स्ट्रिंग (सामान्यीकृत समय) प्रारूप में मौजूद दिनांक पिछले 4 दिनों में है, int 7, 24, 30 आदि

मैं इसे कैसे लिखूं? मैं एक नौसिखिया हूं और मदद का बहुत आभारी हूं।

धन्यवाद

उत्तर

32
इस तरह

: अगर यह पिछले चार दिनों के भीतर किसी भी समय है

DateTime dt; 
    if (DateTime.TryParse(stringValue, out dt) && 
     dt.Date == DateTime.Today) 
    { 
     // do some stuff 
    } 

जाँच करने के लिए,

DateTime dt; 
    if (DateTime.TryParse(stringValue, out dt) && 
     dt.Date > DateTime.Today.AddDays(-4f) && 
     dt < DateTime.Now) 
    { 
     // do some stuff 
    } 

या, एक विस्तार विधि

public static bool WithinPreviousPeriod(this DateTime dt, int daysBack) 
{ 
    return dt.Date > DateTime.Today.AddDays(-daysBack)) 
      && dt < DateTime.Now; 
} 
+0

बहुत बढ़िया, मैं कैसे की जाँच करेगा अगर यह पिछले 4 दिनों के भीतर किया गया था:

अधिक जटिल जांच तुम कर सकते हो ऐसा करने के लिए? धन्यवाद –

+0

क्या यह किसी भी कंप्यूटर पर किसी भी कंप्यूटर पर समस्या का ख्याल रखेगा, या आपके सिस्टम लोकेल से संबंधित पार्सिंग है? मैं केवल इसलिए पूछ रहा हूं क्योंकि बहुत से लोगों को तारीखों में परेशानी होती है। – spender

+0

डेटटाइम। पर्स "सामान्यीकृत समय" प्रारूप को संभाल नहीं करता है, हालांकि। आरएफसी: 1 99412161032Z से एक उदाहरण मूल्य यहां दिया गया है। आपको एक कस्टम प्रारूप स्ट्रिंग में पास करना होगा। – David

6
if(DateTime.Parse(yourString).Date == DateTime.Now.Date) 
{ 
    //do something 
} 
के रूप में

देखना चाहिए कि आज दिन क्या है। हालांकि इसमें त्रुटि जांच अनुपलब्ध है (यह मानता है कि आपकी स्ट्रिंग एक वैध डेटाटाइम स्ट्रिंग है)।

DateTime date = DateTime.Parse(yourString); 
int dateOffset = 4; 

if(date.Date >= DateTime.Now.AddDays(-dateOffset).Date) 
{ 
//this date is within the range! 
} 
+0

धन्यवाद एलन, मैं जल्द ही कोशिश करूँगा। –

संबंधित मुद्दे

 संबंधित मुद्दे