作者 夏仁强
单位 贵州工程应用技术学院
2021年9月9日,张三想约一直暗恋了很久的的女生小芳看电影,小芳告诉张三这天没空,可以答应在某年某月某日陪他一起看。输入一个约会的日期,请你编写程序判断最终张三是否能实现他约会的愿望,若能实现则输出yes,否则输出no。注意,约会不能穿越到2021年9月9日前。
输入格式:
在一行中输入年月日,用-分隔。
输出格式:
合法的日期输出yes,不合法的日期输出no
输入样例1:
2022-7-7
输出样例1:
yes
输入样例2:
2022-2-29
输出样例2:
no
输入样例3:
2021-2-28
输出样例3:
no
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include <stdio.h>
int xiao( int year, int month, int day){ //判断年月日合法的函数
int flag = 0; //标记不合法
int months[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //定义平年每月天数数组
if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) //判断是否为闰年
months[1]++; //是闰年2月是29天
if(day > months[month - 1] || day < 1) //判断天数是否合法
flag = 0;
else if(month > 12 || month < 1) //判断月份是否合法
flag = 0;
else if(year > 2021) //判断年份是否合法
flag = 1 ;
else if(year == 2021 && month > 9) //判断是否在2021年9月份以后
flag = 1;
else if(month == 9 && day > 9) //判断是否在2021年9月9号以后
flag = 1;
else
flag = 0;
return flag;
}
int main(){
int year, month, day; //年, 月, 日
scanf("%d-%d-%d", &year, &month, &day);
if(xiao(year, month, day) == 1) //如果输入的年月日合法,这里合法的意思是在日历中存在这一天
printf("yes");
else
printf("no");
return 0;
}