2012-05-08 10 views
9

मेरे आवेदन में मेरे पास 4 टेक्स्टबॉक्स हैं, और 2 टेक्स्टबॉक्स, स्टार्ट-टाइम दर्ज करने के लिए, और 2 टेक्स्टबॉक्स को अंत-समय में प्रवेश करने के लिए है।दो मानों के बीच समय अंतर प्राप्त करना

उपयोगकर्ता हमेशा एक पूर्ण समय दर्ज करेगा, इसलिए इनपुट हमेशा 11:30, 12:45, और इसी तरह होगा।

मैं प्रारंभ और समाप्ति के बीच घंटों और मिनटों में अंतर कैसे प्राप्त कर सकता हूं?

+0

कुछ इसी तरह [यहां] (http://stackoverflow.com/ उपयोग करने के लिए प्रश्न/2821040/कैसे करते हैं-ए-मिल-समय अंतर-बीच-दो datetime-वस्तुओं का उपयोग-ग)। – RBT

उत्तर

14

टाइमस्पेन कक्षा का उपयोग करें, और डेटटाइम की घटाव विधि का उपयोग करें।

 DateTime t1 = Convert.ToDateTime(textBox1.Text); 
     DateTime t2 = Convert.ToDateTime(textBox2.Text); 
     TimeSpan ts = t1.Subtract(t2); 
+0

के बारे में भूल गया था बहुत अच्छा काम करता है, लेकिन परिणाम 02:30:00 है, क्या सेकंड को हटाना संभव है ताकि यह इस तरह 2:30 प्रदर्शित करेगा? – PandaNL

+1

@ पांडाएनएल: एक प्रारूप संशोधक का उपयोग करें जैसे 'टॉस्ट्रिंग ("एचएच: मिमी") '। – Skalli

+0

यदि आप केवल समय के साथ काम कर रहे हैं, तो आपको वास्तव में 'डेटटाइम' के बजाय 'टाइमस्पेन' का उपयोग करना चाहिए। –

0

घंटों को मिनटों में परिवर्तित करें, इसे मौजूदा मिनटों में जोड़ें, उन्हें कुल सेकेंड में परिवर्तित करें, एंडटाइम के साथ ऐसा ही करें। उन्हें एक दूसरे से कम करें, उन्हें वापस घंटे और मिनट में परिवर्तित करें। एक घंटे में 60 मिनट याद रखना, एक मिनट में 60 सेकंड, यह है कि मैं इससे कैसे निपटूंगा। क्योंकि कुल सेकंड हमेशा एक जैसा होगा, यह 60 से 0 तक या 12 से 1 तक लपेटने की कोशिश कर रहे कंप्यूटर को सिखाने की कोशिश कर रहा है। somethign का उपयोग करने के लिए सेकंड की तरह पूरी तरह से रैखिक का उपयोग करना बहुत आसान है। तो ऊपर की तरफ reconvert

+0

जैसा कि आप खुद को तर्क करने के लिए और अधिक देख सकते हैं, इसलिए यह मेरे लिए अधिक समझ में आता है, बल्कि हर किसी के बजाय तारीख के समय ... xd – RhysW

+1

यह बेहद जटिल है, टाइमस्पैन उपयोगकर्ता के लिए आसान और सुरक्षित है। – Skalli

+0

मुझे अपने पुराने शिक्षक से चुनौतियों का सामना करने के लिए उपयोग किया जाता था, जहां हमें यह समझने के लिए कामों में निर्मित किए बिना थिग्न्स करना होगा कि यह कैसे काम करता है और हमें और अधिक तार्किक होने के लिए सिखाता है, फिर भी उस आदत को तोड़ दिया है – RhysW

1
TimeSpan difference = DateTime.Parse(txtbox1.Text) - Datetime.Parse(txtbox2.Text); 

उदाहरण:

TimeSpan difference = DateTime.Parse("12:55")-DateTime.Parse("11:45"); 
double hourDiff= difference.TotalHours; 
double minutes = difference.TotalMinutes; 
Console.WriteLine(hourDiff);//1.16666666666667 
Console.WriteLine(minutes);//70 
5

दो DateTime वस्तुओं TextBox नियंत्रण में मूल्यों को पार्स और केवल दो DateTime घटाना बनाते हैं, आप एक TimeSpan वस्तु मिल जाएगा जो आप के लिए क्या देख रहे ।

6

आप घटाकर TimeSpan घटा सकते हैं।

TimeSpan time1 = TimeSpan.Parse(textBox1.Text); 
TimeSpan time2 = TimeSpan.Parse(textBox2.Text); 

TimeSpan difference = time1 - time2; 

int hours = difference.Hours; 
int minutes = difference.Minutes; 
1

उपयोग समयावधि:

DateTime dt1 = new DateTime(starttime.text); 
    DateTime dt2 = new DateTime(endtime.text); 

    TimeSpan result = dt2 - dt1; 

तो फिर तुम परिणाम से मिनट, सेकंड आदि प्राप्त कर सकते हैं।

0

आप दो DateTime एस घटा सकते हैं और TimeSpan संरचना प्राप्त कर सकते हैं। यह Days, Hours, Minutes, Seconds, आदि

var first = new DateTime(2012, 05, 08, 10, 30, 00); 
var second = new DateTime(2012, 05, 08, 11, 49, 13); 

var diff = first - second; 
var hours = diff.Hours; 
var mins = diff.Minutes; 
3

उपयोग TimeSpan पुन: प्राप्त करने के लिए गुण है, कोई जरूरत दिनांकों

var start = TimeSpan.Parse(start.Text); 
var end = TimeSpan.Parse(end.Text); 

TimeSpan result = end - start; 
var diffInMinutes = result.TotalMinutes(); 
संबंधित मुद्दे