मैं एक पूर्णांक के रूप में गणना कैसे करूं, अब और पिछले समय के बीच मिलीसेकंड की संख्या अब मुझे याद है?
क्या कोई कारण है कि आपको मिलीसेकंड की अभिन्न संख्या के रूप में इसकी आवश्यकता है? किसी अन्य तारीख के बाद से अंतराल के लिए एनएसडीएटी से पूछना आपको सेकंड की फ्लोटिंग-पॉइंट संख्या देगा। यदि आपको वास्तव में मिलीसेकंड की आवश्यकता है, तो आप मिलीसेकंड की फ्लोटिंग-पॉइंट संख्या प्राप्त करने के लिए केवल 1000 तक गुणा कर सकते हैं। यदि आपको वास्तव में एक पूर्णांक की आवश्यकता है, तो आप फ़्लोटिंग-पॉइंट मान को गोल या छोटा कर सकते हैं।
आप इसे शुरू से आखिर तक, तो पूर्णांकों के साथ क्या निरपेक्ष इकाइयों में वर्तमान समय प्राप्त करने के लिए या तो UpTime
या mach_absolute_time
उपयोग करते हैं, AbsoluteToNanoseconds
का उपयोग एक वास्तविक दुनिया इकाई के लिए कि कन्वर्ट करने के लिए करना चाहते हैं तो। जाहिर है, आपको मिलीसेकंड प्राप्त करने के लिए 1,000,000 तक विभाजित करना होगा।
QA1398mach_absolute_time
चलता है, लेकिन UpTime
आसान है, क्योंकि यह एक ही प्रकार AbsoluteToNanoseconds
उपयोग करता है (नहीं "सूचक मज़ा" के रूप में technote में दिखाया गया है) देता है।
AbsoluteToNanoseconds
एक UnsignedWide
देता है, जो एक संरचना है। (मैक मशीन स्केलर 64-बिट मानों को संभालने से पहले यह सामान वापस आ गया है।) UnsignedWideToUInt64
फ़ंक्शन को स्केलर में बदलने के लिए इसका उपयोग करें। यह सिर्फ घटाव छोड़ देता है, जो आप सामान्य तरीके से करेंगे।
स्रोत
2009-12-12 16:31:38
गैर-सी ++ - 'घड़ी' के लिए विशिष्ट दस्तावेज़ लिंक: http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man3/clock.3.html –