#include int main(int argc, char **argv)
{
int i = 0, base = 1900;
time_t time_new, time_curr;
struct tm *tm_new = NULL, *tm_curr = NULL;
time_t interval = 60*60*24*5;
time_curr = time(NULL);
tm_curr = gmtime(&time_curr);
base = tm_curr->tm_year;
tm_curr->tm_hour = 1;
tm_curr->tm_min = 1;
tm_curr->tm_sec = 1;
time_curr = mktime(tm_curr);
tm_new = (struct tm *)calloc(sizeof(struct tm), 0);
for (i = 1; i <= 10; i++){
tm_new->tm_year = base + i;
tm_new->tm_mon = 0;
tm_new->tm_mday = 0;
tm_new->tm_hour = 1;
tm_new->tm_min = 1;
tm_new->tm_sec = 1;
time_new = mktime(tm_new);
printf ("Year: %d\n", 1900 + base + i);
if ((time_new - time_curr + 60*60*24)%interval == 0 ||
(time_new - time_curr + 60*60*24*2) %interval == 0) {
printf ("\tHave a rest on New Year's Day\n");
}
else {
printf("\tWorking hard on New Year's Day\n");
}
}
return 0;
}
[/code]结果:[code]
/tmp $ make test2
cc test2.c -o test2
/tmp $ ./test2
Year: 2011
Working hard on New Year's Day
Year: 2012
Working hard on New Year's Day
Year: 2013
Have a rest on New Year's Day
Year: 2014
Have a rest on New Year's Day
Year: 2015
Have a rest on New Year's Day
Year: 2016
Have a rest on New Year's Day
Year: 2017
Have a rest on New Year's Day
Year: 2018
Have a rest on New Year's Day
Year: 2019
Have a rest on New Year's Day
Year: 2020
Have a rest on New Year's Day
/tmp $
[/code]这个起始日期是临时从系统中得到的,所以不同的日期执行该程序得到的结果是不相同的。