十楼代码不对,算我的日期的时候差了四天。
稍等,月数组有误…………已修正。
程序代码:
#include <stdio.h> int is_leap_year(int y) { return y % 400 == 0 || (y % 4 == 0 && y % 100 != 0); } int get_days(int y, int m, int d) { int month[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}; if (m > 2 && is_leap_year(y)) ++d; return y * 365 + y / 4 - y / 100 + y / 400 + month[m - 1] + d; } int main(void) { int by, bm, bd, cy, cm, cd; puts("请输入自己的生日与今天的日期,格式为yyyy-mm-dd,两组日期以空格分隔:"); while (scanf("%d-%d-%d %d-%d-%d", &by, &bm, &bd, &cy, &cm, &cd) == 6) printf("相差%d天。\n", get_days(cy, cm, cd) - get_days(by, bm, bd)); return 0; }
[ 本帖最后由 StarWing83 于 2009-10-24 19:12 编辑 ]