C语言实现日期加天数计算
#include <stdio.h>
// 定义日期结构体 typedef struct { int year; int month; int day; } DATE;
// 计算某年某月的天数 int daysInMonth(int year, int month) { switch (month) { case 2: if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { return 29; } else { return 28; } case 4: case 6: case 9: case 11: return 30; default: return 31; } }
// 计算某个日期加 n 天后的日期 DATE adddays(DATE date, int n) { int year = date.year; int month = date.month; int day = date.day; while (n > 0) { int days = daysInMonth(year, month); if (day + n <= days) { day += n; n = 0; } else { n -= days - day + 1; day = 1; if (month == 12) { year++; month = 1; } else { month++; } } } DATE result = {year, month, day}; return result; }
// 输出日期 void print(DATE date) { printf("%d-%d-%d\n", date.year, date.month, date.day); }
int main() { DATE d1, d2; int k; scanf("%d %d %d", &d1.year, &d1.month, &d1.day); scanf("%d", &k); d2 = adddays(d1, k); print(d2); return 0; }
原文地址: https://www.cveoy.top/t/topic/nwQl 著作权归作者所有。请勿转载和采集!