C语言:计算同一年内两个日期的相隔天数
代码思路:
1.不同月 :总天数 = 开始月剩余天数+间隔月天数+截至日
2.相同月:总天数 = 截至日-开始日
代码编写:
#include<stdio.h>
int main()
{
int y1,y2,m1,m2,d1,d2,l,m,n,o,a = 0,day;
printf("请输入开始日期:\n");
scanf("%d%d%d",&y1,&m1,&d1);
printf("请输入截至日期:\n");
scanf("%d%d%d",&y2,&m2,&d2);
//月份天数判定
if(m1==1||m1==3||m1==5||m1==7||m1==8||m1==10||m1==12) m = 31;
else if(m1==4||m1==6||m1==9||m1==11) m = 30;
else if(y1%4==0&&y1%100!=0||y1%400==0) m = 29;
else m = 28;
l = m2-m1-1;
//不同月天数计算
if(l>=0)
{
for(l;l>0;l--)
{
o = m1+l;
if(o==1||o==3||o==5||o==7||o==8||o==10||o==12) n = 31;
else n = 30;
a = a+n; //间隔月天数计算
}
day = m-d1 + a+d2; //总天数计算
printf("距离截止日期剩余%d天\n",day);
}
//相同月天数计算
else
{ day = d2-d1;
printf("距离截止日期剩余%d天\n",day);
}
return 0;
}
结果:
请输入开始日期:
2022
10
24
请输入截至日期:
2022
12
30
距离截止日期剩余67天
Process exited normally.
Press any key to continue . . .