例如,我想数一数我在地球上活了多少秒。使用gettimeofday()/time(),我可以获得自Epoch以来的秒数,我想要的是从Epoch到我的生日的差,所以我的问题是是否有这样的函数:
time_t gettimeof_specified_day(my_birthday);
它返回从Epoch到我的生日的秒数,然后我可以使用difftime(now, birthday)来得到我想要的。
您可以使用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);