// 输入日期,判断该日期是今年的地几天
#include<stdio.h>
int isleapyear(int year)//判断是否为润年
{
if((year%4==0&&year%100!=0)||year%400==0)
{
return 1;
}
else
{
return 0;
}
}
int daysofmonth(int year,int month)
{
switch(month)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
return 31;
case 4: case 6:case 9:case 11:
return 30;
case 2: return isleapyear(year)?29:28;//三目运算符
default:
return -1;//非法输入
}
}
int sumdays(int year,int month,int day)
{
int sum=0;
for(int i=1;i<month;i++)
{
sum=sum+daysofmonth(year,month);
}
sum=sum+day;
return sum;
}
int main()
{
int year,month,day;
printf("请输入年月日\n");
scanf("%d %d %d",&year,&month,&day);
if(month<1||month>12||day>daysofmonth(year,month))
{
printf("输入的日期不合法\n");
}
else
{
int result=sumdays(year,month,day);
printf("今天是第%d天\n",result);
}
return 0;
}
输入年月日,判断这是这一年的第几天
于 2024-03-11 20:22:13 首次发布