//输入的日期是第几天
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
int year;
int month;
int day;
int i;
int total=0;
int n;
//输入待求时间
scanf("%d%d%d",&year,&month,&day);
//判断闰年
n = (year % 4 == 0 && year % 100 != 0)||(year % 400 == 0);
if (month < 0 || month > 12 || day < 0 || day > 31) {
printf("erro 1!\n");
return 0;
}
if (month == 2 || month == 4 || month == 6 || month ==9 || month == 11 ) {
if (day > 30) {
printf("error 2!\n");
return 0;
}
}
if (n) {//是闰年
if (month == 2) {
if (day > 29) {
printf("erro3 !\n");
return 0;
}
}
}
if (n == 0 && month == 2 && day > 28) {
printf("erro4 !\n");
return 0;
}
// 计算月份
for (i = 1; i < month; i++)
{
switch (i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
total += 31;
break;
case 4:
case 6:
case 9:
case 11:
total += 30;
break;
case 2:
if (n)
{
total += 29;
}else
total += 28;
break;
default:printf("输入有误 !");
break;
}
}
printf("第%d天\n",total+day); //加上天数
}
return 0;
}
//运算结果eg:
//2000 3 6
//第66天
//Program ended with exit code: 0
输入日期求这一天是本年中的第几天
最新推荐文章于 2024-01-28 19:08:27 发布