簡體   English   中英

Java年Java Q

[英]Leap year Java Q

我需要為a年寫一個方法。 因此,該方法必須稱為printleap,並檢查該數字是否為a年。 因此,java程序將通過讀取年份編號列表來測試該方法,並且僅顯示the年。 這是我所做的:

導入java.util.Scanner; 公共類Ex1PartAassig3 {

public static int printleap(String string) {
    Scanner sc1=new Scanner(System.in);
    {
        System.out.println("This programe calculates leap year.");
        int year= printleap ("Enter the year:");
        if ((year%4==0)&& year % 100 !=0)
    }
    System.out.println(year + "is a leap year.");
    {
    else if ((year % 4==0) && (year % 100==0)&&(year % 400==0))
    {
        System.out.println(year +"is a leap year.");
    }
    else {
    }
        System.out.println(year + " is not a leap year.");

    }

}

}

顯示錯誤的區域在第一個'else'下划線,否則((year%4 == 0)&&(year%100 == 0)&&(year%400 == 0)

還有兩個花括號,第一個花括號位於第二個system.out的上方,第一個花括號位於最底部。底部有3個花括號,但第一個花括號為1。

有什么可以幫助我運行該程序的,或者我忘記了的謝謝嗎?

大括號到處都是,不要排隊。 這將是帶有正確匹配的花括號的固定版本:

public static void printleap()
{
    try (Scanner sc1=new Scanner(System.in))
    {
        System.out.println("This programe calculates leap year.");
        System.out.print("Enter the year:");
        int year= sc1.nextInt();
        if((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
        {
            System.out.println(year +"is a leap year.");
        }
        else
        {
            System.out.println(year + " is not a leap year.");
        }
    }
}

編輯:還更新了if語句以使用下面的答案的條件,因為初始代碼中的確存在缺陷。 year年必須被4整除,但如果被100整除的年份也可以被400整除。

你的情況不對...

一定是

 if((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))

您的邏輯(使用ifelse if )應如下所示:

if ( year%400 == 0)
    System.out.println(year+ " is leap year");
  else if ( year%100 == 0)
    System.out.println(year+ " is NOT leap year");
  else if ( year%4 == 0 )
    System.out.println(year+ " is leap year");
  else
     System.out.println(year+ " is NOT leap year");

使用java.time

有一個課程

Year.now()
    .isLeap()

最好總是指定所需/期望的時區,而不是隱式依賴JVM的當前默認時區。

Year.now( ZoneId.of( "Europe/Paris" ) )
    .isLeap()

或指定年份。

Year.of( 2017 )
    .isLeap()

關於java.time

java.time框架內置於Java 8及更高版本中。 這些類取代了麻煩的舊的舊式日期時間類,例如java.util.DateCalendarSimpleDateFormat

現在處於維護模式Joda-Time項目建議遷移到java.time類。

要了解更多信息,請參見Oracle教程 並在Stack Overflow中搜索許多示例和說明。 規格為JSR 310

在哪里獲取java.time類?

ThreeTen-Extra項目使用其他類擴展了java.time。 該項目為將來可能在java.time中添加內容提供了一個試驗場。 您可以在這里找到一些有用的類,比如IntervalYearWeekYearQuarter ,和更多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM