避免众多声明

时间:2016-02-28 17:11:22

标签: java enums

我写的课程依赖于月份和每月有多少天。在课程开始时,我写过:

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

这看起来像是一种混乱的方式,我觉得枚举会更有效率。我需要能够增加"月份(DEC + 1 = JAN),并且需要能够知道本月有多天(FEB有28个)。

我看到两种方法:

  1. 我目前的方式,定义静态最终整数并使用switch语句查找天数,当递增时我总是检查该值是否大于12.

  2. 创建一组枚举,每个枚举都包含一年中某月份的输入以及包含的天数,并定义"增量"方法

  3. 有没有更好的方法来做到这一点,或者(大概)2。最好的方法呢?

2 个答案:

答案 0 :(得分:0)

我建议在这种情况下使用java.util.Calendar。它已经为几乎所有与日期和时间相关的概念定义了常量,您将不得不使用它们;另外,它足够聪明,可以了解像二月的多长时间(29%25%的时间)。

答案 1 :(得分:0)

Java有一个可以满足您需求的类。请参阅Calendar类,其中还包含月份和星期几的常量:

https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html