2012-01-20 21 views
52

के बीच सेकंड में अंतर की जांच करें हाय सब मैं वर्तमान में एक प्रोजेक्ट पर काम कर रहा हूं, जहां एक निश्चित घटना घटना के बारे में ब्योरा होती है जिसमें ईवेंट की घटना सूची में शामिल किया गया है।दो बार

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

मैं यह करने के बारे में कैसे जाउंगा।

उत्तर

159

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

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds; 

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

+1

धन्यवाद, वैसे, वर डबल किया जा रहा है खत्म हो जाएगा: [TotalSeconds ] (https://msdn.microsoft.com/en-us/library/system.timespan.totalseconds (v = vs.110) .aspx) – Loaderon

+0

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

11

दिनांक समय एक Subtract method और सिर्फ इस तरह के एक अवसर के लिए एक overloaded - operator है:

DateTime now = DateTime.UtcNow; 
TimeSpan difference = now.Subtract(otherTime); // could also write `now - otherTime` 
if (difference.TotalSeconds > 5) { ... } 
3

मैं इस का उपयोग नकारात्मक अंतराल से बचने के लिए।

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

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

var seconds = System.Math.Abs((date1 - date2).TotalSeconds); 
संबंधित मुद्दे