2016-10-05 5 views
10

cplusplus.com के अनुसार tm संरचना से 0 9 0 में सी 0 में 61 से मूल्य और सी 99 में 0 से 60 के मान स्वीकार करते हैं और बाद में।टीएम संरचना से टीएम_सीईसी क्षेत्र में 61 का उद्देश्य

मुझे पता है कि 60 का उपयोग दूसरे छलांग को व्यक्त करने के लिए किया जा सकता है लेकिन दूसरे के बारे में क्या (मेरा मतलब 61) है? और उन्होंने इसे हटाने का चुनाव क्यों किया?

हाँ, मैंने इसे सी और सी ++ दोनों टैग किया क्योंकि यह इस मामले में दोनों भाषाओं से संबंधित है।

+1

यह [इस उत्तर] [http://stackoverflow.com/a/765780) पर टिप्पणियों में पूछा गया है और उत्तर दिया गया है। – hvd

+6

@ πάντα ῥεῖ क्या आप गंभीर हैं? – FrozenHeart

+1

http://en.cppreference.com/w/c/chrono/tm#cite_note-leapsecond-1 संभावित स्पष्टीकरण के रूप में – Creris

उत्तर

13

0 से 61 की एक श्रृंखला किसी दिए गए वर्ष के 31 दिसंबर को लगातार 2 लीप सेकंड तक की अनुमति देती है, शायद गलती से क्योंकि वर्षों में 2 लीप सेकेंड की आवश्यकता होती है, इन्हें उसी दिन नहीं जोड़ा जाता है।

सी मानक के नए संस्करण सही ढंग से मानते हैं कि किसी भी दिन किसी एक समय में एक लीप सेकंड डाला जाएगा।

रूप https://en.wikipedia.org/wiki/Leap_second छलांग सेकंड में विस्तार से समझाया गया आदेश 0.9 सेकंड से अधिक समय एक बहाव से बचने के लिए दिसंबर और/या जून में डाला जाता है, इसलिए tm_sec के लिए अधिकतम मूल्य 60 बजाय 61 होना चाहिए।

+0

जो, पता है, समझ में आता है, क्योंकि यूटीसी की औपचारिक परिभाषा डबल लीप सेकंड की अनुमति नहीं देती है। टिप्पणियां देखें [यहां] (http://stackoverflow.com/a/765780/102937)। –

+0

@ रॉबर्ट हार्वे: मैं सहमत हूं, और संदर्भ काफी प्रासंगिक है, हालांकि यह एक डुप्लिकेट नहीं है। – chqrlie

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