[英]Leap year and next leap year java
我試圖找到下一個閏年。 我有第一個閏年。 我應該編碼什么以及在哪里編碼? 我知道我需要在某處打印聲明“是(“前一個閏年)旁邊的閏年。”只是不知道如何去做。例如,
輸入:2016
產出:2016年是閏年。
2020年是繼2016年之后的閏年。
import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int inputYear;
int nextLeapYear;
boolean isLeapYear;
isLeapYear = false;
inputYear = scnr.nextInt();
if (inputYear % 4 == 0) {
if (inputYear % 100 == 0) {
isLeapYear = inputYear % 400 == 0;
} else {
isLeapYear = true;
}
}
if (isLeapYear) {
System.out.println(inputYear + " is a leap year.");
} else {
System.out.println(inputYear + " is not a leap year.");
}
}}
將您的年份轉換為Year
的實例或使用靜態Year.isLeap(x)
方法。 然后,您可以執行以下所有操作:
isLeap
檢查當前年份是否為閏年isLeap
do { year = year.plusYears(4); } while (!year.isLeap());
從已知的閏年中找出下一個閏年 java.time
為時間java.time
提供了高質量的庫,否則由於民用時間(DST、閏年、閏秒)的復雜性,很難做到正確。
if (isLeapYear) {
nextLeapYear = inputYear + 4 ;
System.out.println(inputYear + " is a leap year.");
System.out.println(nextLeapYear + " is next leap year.");
}
else {
nextLeapYear = inputYear + inputYear%4 ;
System.out.println(inputYear + " is not a leap year.");
System.out.println(nextLeapYear + " is next leap year.");
}
您可以使用java.time.Year 。
int givenYear = 2016;
int nextLeapYear = givenYear;
if (Year.isLeap(givenYear)) {
while (!Year.isLeap(++nextLeapYear));
System.out.println("Is leap year.");
System.out.println("Next one is: " + nextLeapYear);
}
else {
System.out.println("Not a leap year.");
}
您還可以使用 LocalDate 來查找 LeapYear 1 :
LocalDate year2016 = LocalDate.ofYearDay(2016, 1);
System.out.println ( "Is 2016 the leap year : " + year2016.isLeapYear());
LocalDate nextLeapYearTest = year2016.plusYears(1);
while(!nextLeapYearTest.isLeapYear()) {
nextLeapYearTest = nextLeapYearTest.plusYears(1);
}
System.out.println ( "The next leapYear is : " + nextLeapYearTest.getYear());
如果您喜歡嵌套的 ifs 和硬編碼的代碼。
public static boolean isLeapYear(int year) {
if (year > 0 && year <= 9999) {
if(year %4 == 0){
if(year %100 == 0){
if(year % 400 == 0){
return true;
}
return false;
}
return true;
}
}
return false;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.