2016-02-28 81 views
-1

我正在寫一個依賴於月份以及每個月有多少天的課程。在我的課程開始時,我寫了:避免大量聲明

static final int JAN = 1; 
static final int FEB = 2; 
... 
static final int DEC = 12; 

這看起來像是一個混亂的方式,我覺得枚舉會更有效率。我需要能夠「增加」月份(DEC + 1 = JAN),並且需要能夠知道該月有多少天(FEB有28)。

我看到這樣的方法有兩種:

  1. 我現在的方式,定義靜態最終整數,並使用switch語句找到的天數,而增加的時候,我總是會檢查值是否大於12.

  2. 創建一組枚舉,每個枚舉具有一年中的哪個月份以及它包含多少天的輸入,並定義一個「增量」方法。

有沒有更好的方法來做到這一點,或者(大概)2.這樣做的最好方法?

+2

不要。根本不要那樣做。請。使用內置的類進行日期時間處理。除非你喜歡傷害自己。 – Tunaki

+0

看看新的Java時間API。不要閱讀指向舊日曆類的答案... – Tunaki

+0

其中一個或另一個有什麼特別的優點/缺點,或者它們的功能如何不同? –

回答

0

我建議對這種情況使用java.util.Calendar。它已經定義了幾乎爲每個日期和時間相關的概念定義的常量,您將永遠不得不使用這些常量;再加上,它足夠聰明地知道諸如二月份的願望 - 無用的長度(29天25%的時間)。