概述
帮忙解决一下C语言求日期差的问题!谢谢!0
【问题描述】
结构
struct Date {
int year;
int month;
int day;
};
利用该结构编写一个程序用来计算两个日期之间相差的天数。
【输入形式】
输入两个日期,每个日期分占一行,在一行中日期的年、月、日是三个整数,以空格分隔。并假设第二个日期大于或等于第一个日期。
【输出形式】
第二个日期与第一个日期间相差的天数。
【输入样例】
2003 3 25
2003 3 29
【输出样例】
4
#include
struct date {
int year;
int month;
int day;
};
main()
{
struct date date1,date2;
int days;
int day=0,year=0;
int daytab1[]={31,28,31,30,31,30,31,31,30,31,30,31};
int daytab2[]={31,28,31,30,31,30,31,31,30,31,30,31};
int i;
scanf("%d%d%d",&date1.year,&date1.month,&date1.day);
scanf("%d%d%d",&date2.year,&date2.month,&date2.day);
if((date1.year%4==0&&date1.year%100!=0)||(date1.year%400==0))
{
daytab1[1]=29;
year=366;
}
else
{
daytab1[1]=28;
year=365;
}
if((date2.year%4==0&&date2.year%100!=0)||(date2.year%400==0))
{
daytab2[1]=29;
year=366;
}
else
{
daytab2[1]=28;
year=365;
}
if(date2.year>=date1.year)
{
if(date1.year==date2.year&&date2.month>=date1.month)
{
if(date1.year==date2.year&&date1.month==date2.month&&date2.day>=date1.day)
days=date2.day-date1.day;
else
{
for(i=date2.month-1;i>date1.month;i--)
{
days=date2.day;
days=days+daytab1[i-1];
}
days=days+(daytab1[date1.month-1]-date1.day);
}
}
}
else
{
if(daytab1[1]==28)
days=(date2.year-date1.year)*365+daytab1[date1.month-1]-date1.day+date2.day;
else if(daytab1[1]==29)
days=(date2.year-date1.year)*365+daytab1[date1.month-1]-date1.day+date2.day+1;
}
printf("%dn",days);
}
谢谢大家,帮忙改一下,修改成功会追加分数!
最后
以上就是昏睡大叔为你收集整理的c语言时间错误的是,帮忙解决一下C语言求日期差的问题!谢谢!的全部内容,希望文章能够帮你解决c语言时间错误的是,帮忙解决一下C语言求日期差的问题!谢谢!所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复