【发布时间】:2013-05-13 16:19:41
【问题描述】:
我正在使用time() 函数,它返回自 1970 年 1 月以来经过的秒数;
我想推断当前时间和日期,这是我所看到的..
#define SECONDS_PER_YEAR 31536000u
#define SECONDS_PER_MONTH 2628288u
#define SECONDS_PER_WEEK 604800u
...
time_t unaccountedSeconds = time(NULL);
// Calculate years
int years = unaccountedSeconds / SECONDS_PER_YEAR;
// Seconds not absorbed by years
unaccountedSeconds = unaccountedSeconds % SECONDS_PER_YEAR;
// Calculate months
int months = unaccountedSeconds / SECONDS_PER_MONTH;
// Seconds not absorbed by months
unaccountedSeconds = unaccountedSeconds % SECONDS_PER_MONTH;
// Calculate weeks
这对我不起作用。
【问题讨论】:
-
如果所有月份的长度相同,那应该可以。但他们不是。 (就此而言,也不是所有年份。)
-
提示:除以 4 年的秒数。在您尝试计算月/日之前,将剩余部分转换为当天的天数和秒数。