#include<stdio.h>
#include<stdbool.h>
struct date {
int day;
int month;
int year;
};
bool isleap ( struct date d ){//是闰年返回true
bool leap = false;
if ((d.year%4 == 0 && d.year%100 != 0) || d.year%100 == 0)
leap = true;
return leap; //单一出口原则
}
int daysofmonth ( struct date d ){//判断每月天数
int days;
const int dayspermonth[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
if ( d.month == 2 && isleap(d) )
days = 29;
else
days = dayspermonth[d.month-1];
return days; //注意函数的返回值不能丢
}
int main ( int argc, char const *argv[])
{
struct date today, tomorrow;
printf("请输入今天的日期(mm dd yy):\n");
scanf("%d %d %d",&today.month,&today.day,&today.year);
//注意%d用什么隔开,输入时就用什么隔开
if( today.day<1 || today.day>31 || today.month<1 ||today.month>12 )
printf("输入有误!!\n");
return 0; //此处瑕疵,没有单一出口,暂不知如何直接结束程序
if( today.day != daysofmonth(today) ){
tomorrow.day = today.day + 1;
tomorrow.month = today.month;
tomorrow.year = today.year;
}else if( today.month == 12 ){
tomorrow.day = 1;
tomorrow.month = 1;
tomorrow.year = today.year+1;
}else{
tomorrow.day = 1;
tomorrow.month = today.month + 1;
tomorrow.year = today.year;
}
printf( "明天的日期是%d-%d-%d",tomorrow.month,tomorrow.day,tomorrow.year);
return 0;
}
c语言结构体应用例程:输入今天日期,输出明天日期
最新推荐文章于 2023-05-07 22:02:50 发布