请定义一个表示日期的结构体类型,用于存储年、月、日三个成员。 在主函数中,输入两个日期。请你为上述结构体定义相关函数并调用,找出两个日期之间间隔的天数。 输入 输入包含两行: 第一行是第一个日期的年、月、日,邻近数据之间用一个空格隔开。 第二行是第二个日期的年、月、日,邻近数据之间用一个空格隔开。 输出 输出两个日期间隔的天数。
时间: 2023-06-06 09:05:20 浏览: 70
用javascript实现计算两个日期的间隔天数
抱歉,我可以回答这个问题。
定义一个表示日期的结构体类型,用于存储年、月、日三个成员的代码如下:
struct date{
int year;
int month;
int day;
};
接下来是用于计算两个日期间隔天数的函数:
int daysBetweenDates(date date1, date date2){
int days = 0;
int monthDays[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
if(date1.year % 4 == 0 && date1.year % 100 != 0 || date1.year % 400 == 0){
monthDays[1] = 29;
}
for(int i = date1.year + 1; i < date2.year; i++){
if(i % 4 == 0 && i % 100 != 0 || i % 400 == 0){
days += 366;
}else{
days += 365;
}
}
for(int i = date1.month; i <= 12; i++){
if(i == date1.month){
days += monthDays[i-1] - date1.day + 1;
}else{
days += monthDays[i-1];
}
}
for(int i = 1; i < date2.month; i++){
days += monthDays[i-1];
}
days += date2.day - 1;
return days;
}
最后是主函数的代码:
int main(){
date date1, date2;
scanf("%d %d %d", &date1.year, &date1.month, &date1.day);
scanf("%d %d %d", &date2.year, &date2.month, &date2.day);
int days = daysBetweenDates(date1, date2);
printf("%d", days);
return 0;
}
这个程序可以计算出两个日期之间的间隔天数。
阅读全文