2012-04-03 16 views
17

मेरे पास कुछ क्रिया की अवधि की गणना करने के लिए एक समय उत्पन्न करने वाला कोड है। मैं क्या करना चाहता हूं कि परिणाम (अवधि) लेना और उसे किसी संख्या, किसी भी संख्या से विभाजित करना है।टाइम्स पैन डिवीजन

मैं यह कैसे कर सकता हूं?

+1

मैं कास्टिंग कोशिश की, लेकिन संकलक एक त्रुटि देता है। अगर मुझे 0.0000000004 का नतीजा मिलता है, तो मैं उस नंबर को विभाजित करना चाहता हूं, कहें, 4 में। यह सिर्फ एक उदाहरण है। – Novak

+1

संभावित डुप्लिकेट [.NET में गुणा समय टाइमपैन] (http://stackoverflow.com/questions/9909086/multiply-timespan-in-net) –

उत्तर

7

कोशिश

TimeSpan X = ...; 

var Result = X.TotalMilliseconds/WhatEverNumber; 

संदर्भ के लिए MSDN देखते हैं।

+3

यह आपको एक डबल, टाइम टाइम नहीं देगा। अन्य उत्तरों देखें। – DCShannon

8

गुणों में से एक का उपयोग करें जो संख्याएं हैं।

आईई। आप कुछ कोड है जो आप को मापने के पांच पुनरावृत्तियों चला रहे हैं, तो आप

myTimeSpan.TotalMilliseconds/5 

का उपयोग यात्रा प्रति मिलीसेकेंड की औसत संख्या प्राप्त करने के लिए कर सकते हैं। आप अंतर्निहित मूल्य प्राप्त करने के लिए Ticks का उपयोग कर सकते हैं और विभाजित परिणाम से एक नया TimeSpan बना सकते हैं।

+0

पूरी तरह से, आदमी !!! – Oded

5
TimeSpan ts = ... 
TimeSpan result = TimeSpan.FromTicks(ts.Ticks/divisor); 
25

आप मूल समयावधि की टिक उपयोग कर सकते हैं:

var res = new TimeSpan(origSpan.Ticks/aNumberAnyNumber); 
+0

उपरोक्त क्योंकि यह पहला पूर्णांक विभाजन उत्तर है, जो, जब उपलब्ध हो, लगभग हमेशा बेहतर विकल्प होता है। – Ekevoo

+0

सभी वीबीएनईटी डेवलपर्स जो इस उपयोगी उत्तर में ठोकर खाते हैं: विभाजन ऑपरेटर एक _integer_ विभाजन है, इसलिए त्रुटि से बचने के लिए वीबी के \ ऑपरेटर (बैकस्लैश) का उपयोग करें _ऑशन सख्त ऑन 'डबल' से 'लांग' तक निहित रूपांतरण को अस्वीकार करता है _। –

0

क्या आप विभाजित करना चाहते हैं पर निर्भर करता है, लेकिन मान लीजिए कि आप चाहते सेकंड, आप totalseconds संपत्ति का उपयोग कर सकते हैं।

TimeSpan ts = new TimeSpan(4, 0, 0); //Four hours 

MessageBox.Show((ts.TotalSeconds/4).ToString()); 
3

आप एक नया TimeSpan वर्ष का एक अंश है कि अंत करना चाहते हैं:

TimeSpan now = DateTime.Now.TimeOfDay; 
TimeSpan halfOfNow = new TimeSpan(now.Ticks/2); 
संबंधित मुद्दे