/ / क्या विशिष्ट तिथि के बाद से सेकंड की गिनती प्रदान करने के लिए लिनक्स सिस्टम कॉल है? [डुप्लिकेट] - सी, लिनक्स

क्या विशिष्ट तिथि के बाद से सेकंड गिनती प्रदान करने के लिए लिनक्स सिस्टम कॉल है? [डुप्लिकेट] - सी, लिनक्स

उदाहरण के लिए, मैं गिनना चाहता हूं कि मैं कितने सेकंडपृथ्वी पर रहते हैं। Gettimeofday () / समय () के साथ, मैं एपोक के बाद से सेकंड की गिनती प्राप्त कर सकता हूं, मैं और क्या चाहता हूं कि एपोक से मेरे जन्मदिन तक का अंतर है, इसलिए मेरा सवाल है कि क्या फ़ंक्शन है:

time_t gettimeof_specified_day(my_birthday);

यह एपोच से मेरे जन्मदिन पर सेकंड लौटाता है, फिर मैं जो चाहता हूं उसे प्राप्त करने के लिए difftime (अब, जन्मदिन) का उपयोग कर सकता हूं।

उत्तर:

उत्तर № 1 के लिए 1

आप इसका उपयोग कर सकते हैं mktime(3) किसी विशेष कैलेंडर की तिथि और समय बदलने के लिए कार्य (एक के रूप में व्यक्त किया गया) struct tm उदाहरण) ए में time_t मूल्य:

// Convert April 14, 1980 00:00:00 (local time, based on your computer"s
// current time zone) into a time_t
struct tm my_birthday;
memset(&my_birthday, 0, sizeof(my_birthday));
my_birthday.tm_year = 80;  // Number of years since 1900
my_birthday.tm_mon = 3;    // Month from 0-11
my_birthday.tm_mday = 14;  // Day of month from 1-31
time_t t = mktime(&my_birthday);