2012-04-24 13 views
23

के समय भाग तुलना करने के लिए मान लीजिए कि हम कैसे सी # में यह तुलना और कहते हैं कि जो समय है "की तुलना में बाद में है" के लिएकैसे datetime

DateTime t1 = DateTime.Parse("2012/12/12 15:00:00.000"); 

और

DateTime t2 = DateTime.Parse("2012/12/12 15:03:00.000"); 

करते हैं?

+2

आपका प्रश्न आपके सवाल का शीर्षक से नहीं मिलता। क्या आप डेटटाइम की तुलना करना चाहते हैं, या डेटटाइम के केवल समय हिस्से की तुलना करना चाहते हैं? –

उत्तर

55

आप TimeOfDay संपत्ति का उपयोग करें और इसके खिलाफ Compare उपयोग कर सकते हैं।

TimeSpan.Compare(t1.TimeOfDay, t2.TimeOfDay) 

प्रलेखन के अनुसार:

-1 if t1 is shorter than t2. 
0 if t1 is equal to t2. 
1 if t1 is longer than t2. 
+0

पर टिप्पणियों/प्रश्नों का उत्तर दे रहा हूं Pls कोड नमूना –

+1

@Peretz कोई अपमान का इरादा नहीं है, लेकिन यह उत्तर आपको कोड नमूना के बिना जानने के लिए आवश्यक सब कुछ बताएगा ... – Jon

+0

@Peretz मैंने अपडेट किया है एक कोड स्निपेट के साथ मेरा जवाब और परिणामों का उपयोग कैसे करें। –

2

उपयोग the DateTime.Compare विधि:

DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0); 
DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0); 
int result = DateTime.Compare(date1, date2); 
string relationship; 

if (result < 0) 
    relationship = "is earlier than"; 
else if (result == 0) 
    relationship = "is the same time as";   
else 
    relationship = "is later than"; 

Console.WriteLine("{0} {1} {2}", date1, relationship, date2); 

संपादित करें: तुम सिर्फ बार की तुलना करें और तारीख को अनदेखा करना चाहते हैं, तो आप TimeOfDay उपयोग कर सकते हैं के रूप में दूसरों का सुझाव दिया है। अगर आपको कुछ कम अनाज की जरूरत है, तो आप Hour और Minute गुणों का भी उपयोग कर सकते हैं।

+0

यह समय –

+0

पर ध्यान केंद्रित नहीं करता है एक तिथि समय की प्राप्ति से अधिक कुछ नहीं है। उदाहरण के लिए, टिक, 100-नैनोसेकंद अंतराल की संख्या हैं जो 12:00:00 आधी रात, 1 जनवरी, 0001 से गुजर चुके हैं। इसलिए दो तिथियों की तुलना करना वास्तव में सिर्फ टिकों में अंतर की तुलना कर रहा है। समय तुलना अंतर्निहित है। – mgnoonan

+2

हां, लेकिन ओपी सिर्फ समय तुलना के लिए पूछ रहा है। यदि आप पूर्ण टिक की तुलना करते हैं, तो यह परीक्षण नहीं करेगा कि 6AM बाद में 5 बजे से अधिक है, उदाहरण के लिए –

14

<, <=, >, >= ऑपरेटरों सब सीधे DateTime और TimeSpan वस्तुओं पर काम करते हैं। तो कुछ इस तरह काम करता है:

DateTime t1 = DateTime.Parse("2012/12/12 15:00:00.000"); 
DateTime t2 = DateTime.Parse("2012/12/12 15:03:00.000"); 

if(t1.TimeOfDay > t2.TimeOfDay) { 
    //something 
} 
else { 
    //something else 
} 
+0

धन्यवाद, मुझे लगता है ... डेटटाइम बनाम टाइमस्पेन जैसे कुछ ऐसा था जो इस तरह के एक डीलब्रेकर था कि उसने पहली जगह में डाउनवोट की आवश्यकता थी? मुझे नहीं लगता। – kaveman

+0

इसने पोस्ट के रूप में प्रश्न का उत्तर नहीं दिया, इसलिए हां आम तौर पर डाउनवॉट्स के लिए है। इसके अलावा, आप == काम भी उल्लेख करना भूल गए हैं। –

+0

हम वास्तव में यहां एक मृत घोड़े को मार रहे हैं लेकिन आप स्पष्ट रूप से इन मूर्ख विवरणों में भी पकड़े गए हैं (@mgnoonan के साथ भी)। ओपी के समय के बीच कुछ संपादन हुए थे, मेरा मूल उत्तर, आपका उत्तर, मेरा संपादित उत्तर इत्यादि। प्रश्न के हर व्याख्या को कम करने से पहले ध्वनि निर्णय का प्रयोग करें जो आपके साथ मेल नहीं खाता है। – kaveman

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