【发布时间】:2014-10-26 02:35:42
【问题描述】:
import java.util.Scanner;
public class Hw2JamesVaughn {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter a year: ");
int year = input.nextInt();
if((year < 1582) == (year % 4==0))
System.out.println(year + " is a leap year");
else
System.out.println(year + " is not a leap year");
if((year > 1582) == (year % 100 != 0) || (year % 400 == 0))
System.out.println(year + " is a leap year");
else
System.out.println(year + " is not a leap year");
}
}
这是作业。
(要确定特定年份是否为闰年,请使用以下逻辑:
- 年份必须能被 4 整除
- 从1582开始,如果年份能被100整除,它也必须能被400整除 因此,1700 年不是闰年,但 2000 年是。但是,1500 是闰年,因为它是 1582年之前,公历的采用年。 您的程序会询问年份,然后显示该年份是否为闰年。)
我的 java 闰年计划已经做到了这一点,但它不起作用!我一直在努力,但我不知道出了什么问题。
【问题讨论】:
-
想想这个条件:
(year < 1582) == (year % 4==0)。 非常仔细考虑检查的内容。我不认为这是你的意思。 (提示:我只是将“1582 年之前的所有内容”与“1582 年以后的所有内容”分开,并忽略这两个分支有任何共同点的事实......) -
您的代码中存在语法错误 -
;紧跟在if语句之后,它完成了没有正文的if块。以下else没有任何对应的if。 -
我认为分裂的年份是 1752 年,而不是 1582 年......你能检查一下吗?如果您在 linux 下,请检查 cal 1700 :)) 我无法为 windows 提供建议,因为我没有它..
-
你能像docs.oracle.com/javase/7/docs/api/java/util/…这样简单地使用Java标准库吗?
-
@mvp - 是的,请参阅以下来自 sadasidha 的答案