c++ 如何判断闰年

来源:百度知道 编辑:UC知道 时间:2024/09/28 07:16:23
#include <stdio.h>
int month_days(int year,int month)
{
int x=31;
if(month==2)
{
if(year%4==0)x=29;
else x=28;
}
else if(month==4||month==6||month==9||month==11)x=30;
else x=31;
return x;
}
//求某年某个月的天数
int week(int year,int month,int day){
int sum=0;
for(int i=1;i<month;i++){
sum=sum+month_days(year,i);
}
sum=sum+day;
int week;
week=(year-1+((year-1)/4)-((year-1)/100)+((year-1)/400)+sum)%7;
return week;
}
//求某年某月某日是星期几
void getMonth(int year,int month){
int empty1=week(year,month,1);
int empty2=week(year,month+6,1);
printf("%c%2d ",124,month);
printf("SUM MON TUE WED THU FRI SAT");
printf(" %2d",month+6);
printf(" SUM MON TUE WED THU FRI SAT %c\n",124);
printf("%c",124);
printf(" ");
int count1=1,cou

int month_days(int year,int month)
{
int x=31;
if(month==2)
{
if((year%100==0&&year%400==0)||(year%100!=0&&year%4==0))
x=29;
else x=28;
}
else if(month==4||month==6||month==9||month==11)x=30;
else x=31;
return x;
}

if((year%==0 && year%100!=0) || (year%400==0))
x=29;
else
x=28;

年数是4的倍数且不是100的倍数才是闰年;
年数是400的倍数也是闰年···你都没有判断···
判断语句应该是
if(year%4==0&&year%100!=0||year%400==0)
x=29;
else
x=28;

int isleapyear(int year)
{
return (year%4==0&&year%100)||(year%400==0);
}

x=28+isleapyear(year);

反正C语言就是这么灵活。

闰年的判断规则:
四年一闰,百年不闰,四百年再闰