मैंने एक साल, जूलियन डे (साल का दिन), घंटा, मिनट, और एक अवलोकन के साथ दो तारों में पढ़ा।एमकेटाइम() मेरे टीएम स्ट्रक्चर के साल के दिन क्यों बदल रहा है?
मैं प्रासंगिक चर बाहर sscanf का उपयोग कर खींच:
sscanf(tide_str1.c_str(), "%d %d %d %d %Lf", &y1, &j1, &h1, &m1, &obs1);
sscanf(tide_str2.c_str(), "%d %d %d %d %Lf", &y2, &j2, &h2, &m2, &obs2);
इस विशेष डेटा सेट के लिए, मान हैं 2011 083 23 22 1,1
मैं तो बना सकते हैं और एक टीएम संरचना को पॉप्युलेट, और mktime चलाने , अदालत के साथ के बीच में दिन पर कॉल करता है और यह 364.
int y1=2011, j1=83, h1=23, m1=22;
struct tm time_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0}, *time_ptr = &time_struct;
time_t tv_min;
time_struct.tm_year = y1 - 1900;
time_struct.tm_yday = j1;
cout << time_struct.tm_yday << endl;
time_struct.tm_hour = h1;
time_struct.tm_min = m1;
time_struct.tm_isdst = -1;
cout << time_struct.tm_yday << endl;
tv_min = mktime(time_ptr);
cout << time_struct.tm_yday << endl;
कि क्यों है 083 से बदल जाता है? क्या ऐसा इसलिए है क्योंकि tm_mday और tm_mon 0 पर सेट हैं? मैंने शुरू में इसे शून्य पर शुरू करने की कोशिश नहीं की, लेकिन फिर एमकेटाइम -1 लौटा। अगर मुझे केवल दिन का दिन पता है, महीने और महीने के दिन में मुझे अलग-अलग क्या करना चाहिए?
वर्ष का दिन है कभी कभी * गलत तरीके से * एक "जूलियन दिवस" के रूप में भेजा। वास्तव में, एक [जूलियन दिवस] (http://en.wikipedia.org/wiki/Julian_day) संख्या 1 जनवरी, 4713 ईसा पूर्व से दिनों की संख्या है; यह खगोल विज्ञान में प्रयोग किया जाता है। –
हां, लेकिन कुछ व्यवसायों के भीतर यह व्यापक रूप से उपयोग किया जाता है (गलत तरीके से), व्यावहारिक रूप से, सही हो। जब तक कि एक क्षेत्र के भीतर हर कोई एक ही शब्द का उपयोग करता है ... संचार होता है। – RuQu