一、原理
如何用代码实现月份的天数的表示。
我们都知道,月份有大月,小月和平月。其中大月有31天,小月有30天。这是固定的,比较容易实现。其中1,3,5,7,8,10,12属于大月。4,6,9,11属于小月。对于2月就比较麻烦了。闰年2月是29天,平年是28天。因此,问题来到了如何判断闰年。
首先,我们要知道什么是闰年。闰年就是凡公历中有闰日(2月29日)的年份,阴阳历中有闰月的年份。
然后,我们要了解它的判断方法。
1.非整百年份:
能被4整除的是闰年。(如2004年就是闰年,2001年不是闰年)
2.整百年份:
能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
二、代码实现
#include<stdio.h>
int main()
{
int year,mouth,day,leapyear;
printf("请输入年份:\n");
scanf("%d",&year);
printf("请输入月份(1~12):\n");
scanf("%d",&mouth);
leapyear=(year%4==0)&&(year%100!=0)||(year%400==0); //先判断是不是闰年
switch(mouth)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:day=31; printf("该月有%d天\n",day);
break; //这些月份31天
case 4:
case 6:
case 9:
case 11:day=30; printf("该月有%d天\n",day);
break; //这些月份30天
case 2:day=28+leapyear; printf("该月有%d天\n",day);
break;
default:printf("月份有误重新输入");break; //对二月份进行判断
}
return 0;
}
三、运行结果
博观而约取,厚积而薄发