题目:编写一个函数,计算两个日期之间的时间差,并将其值返回。日期以年月日表示,时间差以天数表示,注意考虑日期之间的闰年。函数的输入参数为日期1和日期2,函数的返回值为时间差,单位为天数。主函数输入日期,调用函数计算天数。
代码如下:
#include <stdio.h>
#include <math.h>
int date_cha(int date1[3], int date2[3])
{
int i = date1[0], j = date2[0]; //避免了date1[0]的改变所造成的数据错误
int day = 0, z1 = 0, z2 = 0;//z1和z2分别date1[1]和date2[1]两个月份天数
int a[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
day = (date2[0] - date1[0]) * 365;
for (; date2[0] > date1[0]; date1[0]++)
if (date1[0] % 400 == 0 || (date1[0] % 4 == 0 && date1[0] % 100 != 0))//判断是否为闰年
day++;
for (int m = 1; m <= 12; m++)
{
if (m <= date1[1])
z1 += a[m];
if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0))//判断date1[0]是否为闰年
z1++;
}
for (i