可先判断它是否被100整除。
然后分情况,如果不被100整除,那么执行是否能被4整除,进行判断后输出。
如果被100整除,那么执行是否能被400整除,判断并输出。
所以:编程如下:
Private Sub Command1_Click()
Dim Year As Integer
Text1. Text= Year
If Year Mod 100=0 Then
If Year Mod 400=0 Then MsgBox ("闰年")
Else If Year Mod 4=0
Then MsgBox ("闰年")
Else
MsgBox(“平年”)
End If
在任何历法里,都有闰年的说法。
闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。
一、公历(阳历)。
地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropical year)。公历的平年只有365日,比回归年短约0.2422 日,所余下的时间约为每四年累计一天,故第四年要在2月末加1天,使当年的历年长度为366日,这一年就为闰年。阳历里每400年有97个闰年。按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样经过四百年就会多算出大约3天来。因此每四百年中要减少三个闰年。所以公历规定:年份是整百数时,必须是400的倍数才是闰年;不是400的倍数的世纪年,即使是4的倍数也不是闰年。
这就是通常所说的:四年一闰,百年不闰,四百年再闰。 例如,2000年是闰年,2100年则是平年。
二、农历(阴历)。
中国旧历农历作为阴阳历的一种,每月的天数依照月亏而定,大月30天,小月29天,一年的时间以12个月为基准,这样定出来的年,比一回归年少约11天。为了合上地球围绕太阳运行周期即回归年,所余的时间每隔2到4年,增加一个月,增加的这个月为闰月。闰月加到哪个月,以农历历法规则推断,主要依照与农历的二十四节气相符合来确定。
在加有闰月的那一年有13个月,历年长度为383至385日,这一年也称为闰年。如1984年鼠年,有两个十月,通常称为十月和闰十月。农历闰年闰月的推算,3年一闰,5年二闰,19年七闰;农历基本上19年为一周期对应于公历同一时间。如公历的2001年5月27日、1982年5月27日和1963年5月27日这个日子,都是闰四月初五。最长的农历闰月年份的天数可长达385天,这样的农历闰月年份是很罕见的,如1925年、1944年和2006年。
根据条件,首先要满足两个条件
假如判断n是否为闰年
条件1:能被4整除,但是不能被100整除
条件2:能被400整除 n%400==0
同时,条件1,又可以分为 两个条件
条件a:能被4整除 n%4==0
条件b:不能被100整除 n%100!=0
综上所述:条件应该为
if((n%4==0&&n%100!=0)||n%400==0){
//此时是闰年
}else{
//此时不是闰年
}
参考代码如下:
#include
int fun(int year){//判断year是否是闰年
if((year%4==0&&year/100!=0)||(year%400==0))
return 1;
return 0;
}
int main()
{
int n;
scanf("%d",&n);
if(fun(n))
printf("%d是闰年!\n",n);
else
printf("%d不是闰年!\n",n);
return 0;
}
/*
运行结果:
2016
2016是闰年!
*/
#include
#define isLeap(x) ((x)%4==0?(x)%100==0?(x)%400==0?1:0:1:0)
int main(void)
{
int i;
scanf("%ld",&i); if (isLeap(i))
{
printf("%ld年是闰年\n", i);
}
else
{
printf("%ld年不是闰年\n", i);
}
}
平闰年判断方法:
依照小学三年级(北师大)所教授方法——用年份除以4,能够整除则为闰年
特殊年份——末尾有两个零的年份须要除以400,能整除则为闰年