*注意事项:
1)闰年的定义是 可以被4整除但不能被100整除 或 可被400整除
2)7、8月是大月,闰年的2月有29天,正常年份2月28天
*代码:
1)switch-case语句
#include<stdio.h>
int main()
{
int year,mon,day;
int days = 0;
scanf("%d %d %d",&year,&mon,&day);
if(year%4==0 && year%100!=0 || year%400==0){
switch(mon){
case 12: days+=31;
case 11: days+=30;
case 10: days+=31;
case 9: days+=30;
case 8: days+=31;
case 7: days+=31;
case 6: days+=30;
case 5: days+=31;
case 4: days+=30;
case 3: days+=31;
case 2: days+=28;
case 1: days+=31;
break;
}
}else{
switch(mon){
case 12: days+=31;
case 11: days+=30;
case 10: days+=31;
case 9: days+=30;
case 8: days+=31;
case 7: days+=31;
case 6: days+=30;
case 5: days+=31;
case 4: days+=30;
case 3: days+=31;
case 2: days+=29;
case 1: days+=31;
break;
}
}
printf("%d\n",days);
return 0;
}
2)for循环语句:
#include<stdio.h>
int main()
{
int year;
int mon;
int day;
int count;
scanf("%d/%d/%d", &year, &mon, &day);
if( year%4==0 && year%100!=0 || year%400==0){
int i;
int a = mon;
for (i=1,count=0; i<mon; i++,a--){
if(a==2){
count += 29;
}else if(a%2==0 && a!=8){
count += 30;
}else if(a==8){
count += 31;
}else{
count += 31;
}
}
}else{
int j;
int b = mon;
for (j=1,count=0; j<mon; j++,b--){
if(b==2){
count += 28;
}else if(b%2==0 && b!=8){
count += 30;
}else if(b==8){
count += 31;
}else{
count += 31;
}
}
}
count += day;
printf("%d", count);
return 0;
}