考试问题:
为以下内容编写布尔表达式: A是闰年。
任何帮助将不胜感激!
答案 0 :(得分:6)
一年是闰年,如果它可以被4整除而不能被100整除,但如果它可以被400整除则它总是一年。你可以将它翻译成代码:
int year = 2004;
boolean leap = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
模运算符(%
)在分割数字时给出余数,如果第一个数字可被第二个整除,则等于0
。
正如芭丝谢芭指出的那样,这只适用于格里高利历(我们的现代系统自1582年以来在某些国家甚至更晚的其他国家),如果你想要在这个日期之前处理数年,代码将会复杂得多,这需要对当时的确切规则进行一些研究。但是,在考试中,你不必担心这些。
答案 1 :(得分:0)
http://en.wikipedia.org/wiki/Leap_year
来自文章伪代码:
if year is not divisible by 4 then common year
else if year is not divisible by 100 then leap year
else if year is not divisible by 400 then common year
else leap year
答案 2 :(得分:0)
if((A%4==0) && A%100!=0)||A%400==0)
答案 3 :(得分:0)
您可以使用此布尔函数来确定闰年:
public static boolean IsLeapYear(int year)
{
if ((year % 4) == 0)
{
if ((year % 100) == 0)
{
if ((year % 400) == 0)
return true;
else
return false;
}
else
return true;
}
return false;
}
这遵循确定闰年的两条规则
第一条规则:可被4整除的年份是闰年。 第二条规则:如果年份可以被100整除,那么它不是闰年。但如果年份可以被400整除,那么这是闰年。