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年以后的所有东西”分开,忽略了这两个分支将有任何共同点的事实...) - Jon Skeetif
语句后面有一个分号;
,导致if
块没有主体而结束。接下来的else
没有对应的if
。 - papacitojava.time.Year.of(2017).isLeap()
- Basil Bourque