輸入年月日,計算從該年 1 月 1 日到該日期的總天數。
#include
#include
int main() {
int y, m, d;
scanf("%d%d%d", &y, &m, &d);
struct tm start = {0}, end = {0};
start.tm_year = y - 1900;
start.tm_mon = 0; // 1月
start.tm_mday = 1;
end.tm_year = y - 1900;
end.tm_mon = m - 1;
end.tm_mday = d;
// mktime 自動規範化並計算 time_t (秒數)
time_t t1 = mktime(&start);
time_t t2 = mktime(&end);
double diff = difftime(t2, t1); // 秒差
int days = (int)(diff / 86400); // 86400 秒/天
printf("總天數: %d\n", days);
return 0;
}
tm_year = year - 1900,tm_mon = 0-11。mktime 會修改結構體補全 tm_wday, tm_yday, tm_isdst。