2009-03-03 20 views
5

मैं एक मिनट के मूल्य है और मैं 2 स्ट्रिंग के लिए करना चाहते हैं कितने घंटे के साथ एक और मिनट के साथ अन्य, जैसे महत्व देता है = 2
स्ट्रिंग मिनट = 1कार्य बाहर मिनट और घंटे

मूल्य - 58 मिनट

स्ट्रिंग घंटे = 0
स्ट्रिंग मिनट = 58

मैं इसे सी # में कैसे कर सकता हूं?

उत्तर

34
var span = System.TimeSpan.FromMinutes(121); 
var hours = ((int)span.TotalHours).ToString();  
var minutes = span.Minutes.ToString(); 

toString() क्योंकि आप स्ट्रिंग मान के लिए कहा है ...

TotalHours TimeSpan में पूरा घंटे रहे हैं, वे 24 से अधिक (जबकि "घंटे" क्षेत्र हो सकता है अधिकतम 24 है)

ओह, और दूसरे विचार पर: टाइमस्पेन का उपयोग क्यों करें और इसकी गणना न करें? चूंकि टाइमस्पेन पहले ही माइक्रोसॉफ्ट द्वारा परीक्षण किए गए & डीबग किया गया है, इसमें एक अच्छा साफ इंटरफ़ेस है (कोड को देखकर आप आसानी से देख सकते हैं कि मानसिक रूप से गणना का पालन किए बिना क्या चल रहा है) और यह आसानी से आगे के समाधान तक फैलता है।

मैं बस अपना जवाब में गलती देखा: TotalHours रिटर्न

अद्यतन (सेकंड में इनपुट है TimeSpan.FromSeconds() का उपयोग दिनों चाहते हैं span.TotalDays का उपयोग करें ...?।?) सभी घंटों का एक आंशिक मूल्य, इसलिए हमें इसे एक स्ट्रिंग में परिवर्तित करने से पहले इसे पूर्णांक में छोटा करना होगा।

+0

यह शून्य के साथ पैड मिनट नहीं करेगा। ToString ("00") को जोड़ना इसे ठीक करना चाहिए। – Coincoin

+0

@ सिक्काकोइन: 121 मिनट के लिए ओपी के उदाहरण को देखें। कोई पैडिंग की आवश्यकता नहीं है। –

+0

मेरी गलती। इस पर ध्यान दिलाने के लिए धन्यवाद। – Coincoin

2
int value = 121; 
int hours = value/60; // 2 
int minutes = value % 60; // 1 

string strHours = hours.ToString(); 
string strMinutes = minutes.ToString(); 
+0

टाइमस्पेन का उपयोग ओओ रास्ता है, लेकिन यह छोटा और प्यारा है। – spoulson

+0

मैंने रिफ्लेक्टर का उपयोग करके टाइमस्पैन में देखा: सभी परिणामों को चिह्नित मिलीसेकंड के गुणा द्वारा गिना जाता है। मेरा मानना ​​है कि मेरी विधि तेज हो सकती है! – abatishchev

8

टाइम्सpan संरचना और इसकी Parse विधि का उपयोग करें।

+0

उन्होंने कहा कि उनके पास एक मिनट था और वे तारों में परिवर्तित करना चाहते थे, न कि दूसरी तरफ। – froh42

+0

टाइम्सपैन अभी भी जाने का रास्ता है। –

1
int value = 121; 
int hours = value/60; 
int minutes = value % 60; 
+0

डाउनवोट क्यों? यह कुल मिनट मान से घंटे/मिनट प्राप्त करने का एक बिल्कुल वैध तरीका है और -1 – CraigTP

+0

+1 को छोड़कर abatishchev के उत्तर के समान है I -1 -1 नहीं था :) – Davy8

+0

का मुकाबला करने के लिए .toString() के –

0
int value = 121; 
TimeSpan timeSpan = TimeSpan.FromMinutes(value); 

// gives you the rounded down value of 2 
int hours = timeSpan.Hours; 

// gives you the minutes left of the hour 
int minutes = value - (hours * 60); 
+0

टाइमस्पेन का उपयोग क्यों नहीं करें। यहां मिनट? यह इस मामले में 1 लौटाएगा, टाइमस्पेन इंस्टीट्यूट्स के विपरीत जो 121 –

+0

लौटाता है असल में, कुल मिलाकर एक डबल लौटाता है जो 121.3523 या कुछ नंबर लौटा सकता है यदि आप तिथि में अंतर कर रहे हैं। यदि आप Int32 पर कास्टिंग कर रहे हैं, तो कौन सा, हाँ, 121 तक गिर जाएगा। टाइमस्पाम। मिनट मैंने परीक्षण नहीं किया। लेकिन, अगर यह "121" के बजाय "1" देता है, तो यह है। – eduncan911

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