दो बार के बीच सेकंड में अंतर की जाँच करें


102

हाय सब मैं वर्तमान में एक परियोजना पर काम कर रहा हूं, जहां जब एक निश्चित घटना होती है, तो उस घटना के बारे में उस समय के विवरण के साथ जब घटना घटित होती है, सूची सरणी में जोड़ दी जाती है।

एक बार विधि समाप्त हो जाने के बाद मैं फिर सूची पर एक अन्य विधि से गुजरता हूं जो इसके मूल्यों की जांच करती है। इससे पहले कि मैं लूप से गुजरूं मैं अपने पीसी के वर्तमान समय की जांच करता हूं और मुझे यह जांचने की आवश्यकता है कि सूची सरणी में सहेजे गए समय और वर्तमान समय के बीच का अंतर 5 सेकंड से अधिक है या नहीं।

मैं ऐसा कैसे कर पाऊंगा।

जवाबों:


266

मान लिया dateTime1और मान dateTime2रहे DateTimeहैं:

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

आपके मामले में, आप DateTime.Nowमानों में से एक के रूप में उपयोग करते हैं और दूसरे के रूप में सूची में समय। आदेश से सावधान रहें, क्योंकि परिणाम dateTime1पहले की तुलना में नकारात्मक हो सकता है dateTime2


3
धन्यवाद, वैसे, var का अंत दोगुना होगा: TotalSeconds
Loaderon

3
धन्यवाद ... मुझे बस गलती से (मिलेसेकंड) का उपयोग करके काट लिया गया है जब मुझे वास्तव में उपयोग करना चाहिए था (टोटलमिलसेकंड) ... ouch।
andrew pate


15

यह संस्करण हमेशा एक सकारात्मक संख्या के रूप में सेकंड के अंतर को वापस करता है (@ freedeveloper के समाधान के रूप में परिणाम):

var seconds = System.Math.Abs((date1 - date2).TotalSeconds);

4

मैं इसका इस्तेमाल नकारात्मक अंतराल से बचने के लिए करता हूं।

var seconds = (date1< date2)? (date2- date1).TotalSeconds: (date1 - date2).TotalSeconds;

4
Math.Absइसके बजाय का उपयोग करें , यह कोड ऊपर के उत्तर का उपयोग करने की तुलना में कम पठनीय और प्रदर्शन योग्य है।
प्रोग्रामफैस्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.