debugging - AbsoluteTime with numeric argument behaves strangely -


यह अजीब है:

  दिनांक लिस्ट @ निरपेक्ष समय [5 9 6523]   

रिटर्न

  {2078, 7, 2, 2, 42, 9.7849}  

लेकिन

  दिनांकसूची @ AbsoluteTime [596524]  

रिटर्न

  {1 942, 5, 26, 20, 28, 39.5596}  

सवाल: क्या चल रहा है? ध्यान दें कि एक संख्यात्मक तर्क के साथ AbsoluteTime को undocumented है।

(मुझे लगता है कि मुझे अब पता है कि यह क्या कर रहा है लेकिन यह समझ गया कि यह भविष्य के संदर्भ के लिए एक StackOverflow प्रश्न के रूप में उपयोगी है; और अगर कोई कारण है उस मैजिक 596523 नंबर के लिए।)

पीएस: मैथमैटिका में यूनिक्स के समय में परिवर्तित होने के लिए इन यूटिलिटी फ़ंक्शन लिखते समय मुझे इसका सामना करना पड़ा:

  (* यूनिक्स समय का प्रयोग ( एक पूर्णांक) के बजाय गणितिका के AbsoluteTime ... *) टीएम [x ___]: = AbsoluteTime [x] (* टीएम AbsoluteTime के लिए एक उपनाम है। *) Uepoch = tm [[1970}, टाइम ज़ोन-> 0]; (* Unixtm टीएम के अनुरूप काम करता है। *) Unixtm [x ___]: = गोल [टीएम [x] -यूपोक] (* टीएम और यूनिक्स के बीच यूनीक्सम कनवर्ट करें) * यूनीक्स्टएम [x_? NumericQ]: = गोल [x- Uepoch] (* एमएमए युग का समय जब संख्यात्मक * दिया गया है) टीएम [टी_? एन्यूमेरिकक्यू]: = टी + यूईपोक (* एजीआर। आईई, वे उलटा हो। *)  

यदि आप 596524 और 596523 को घंटों से सेकेंड (3600 तक गुणा) में परिवर्तित करते हैं तो आप देखेंगे कि बड़ी संख्या 2 ^ 31-1 से अधिक है (अधिकतम 32-बिट पूर्णांक मान पूर्णांक), जबकि छोटी संख्या नहीं है।


Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -