Java教程-Java Month枚举类

Java Month枚举类
在Java中,Month是一个枚举类,表示一年的12个月份。除了枚举名称,每个月份还有一个整数值。
Java Month枚举类声明
让我们来看一下java.time.Month的声明。
public enum Month extends Enum<Month> implements TemporalAccessor, TemporalAdjuster
枚举常量
枚举常量 | 描述 |
---|---|
JANUARY | 一月的枚举实例,有31天。 |
FEBRUARY | 二月的枚举实例,平年有28天,闰年有29天。 |
MARCH | 三月的枚举实例,有31天。 |
APRIL | 四月的枚举实例,有30天。 |
MAY | 五月的枚举实例,有31天。 |
JUNE | 六月的枚举实例,有30天。 |
JULY | 七月的枚举实例,有31天。 |
AUGUST | 八月的枚举实例,有31天。 |
SEPTEMBER | 九月的枚举实例,有30天。 |
OCTOBER | 十月的枚举实例,有31天。 |
NOVEMBER | 十一月的枚举实例,有30天。 |
DECEMBER | 十二月的枚举实例,有31天。 |
Java Month的方法
方法 | 描述 |
---|---|
int getValue() | 获取月份的整数值。 |
int get(TemporalField field) | 获取此月份的指定字段的值。 |
int length(boolean leapYear) | 获取此月份的天数。 |
int maxLength() | 获取此月份的最大天数。 |
int minLength() | 获取此月份的最小天数。 |
Month minus(long months) | 返回此月份之前指定月数的月份。 |
Month plus(long months) | 返回此月份之后指定月数的月份。 |
static Month of(int month) | 从整数值获取Month的实例。 |
Temporal adjustInto(Temporal temporal) | 调整指定的时间对象以与此月份具有相同的值。 |
int firstDayOfYear(boolean leapYear) | 获取与本月份的第一天对应的年份的天数。 |
Month firstMonthOfQuarter() | 获取本季度的第一个月份。 |
static Month from(TemporalAccessor temporal) | 从时间对象获取Month的实例。 |
String getDisplayName(TextStyle style, Locale locale) | 获取文本表示形式,如'Jan'或'December'。 |
long getLong(TemporalField field) | 从此月份获取指定字段的值。 |
boolean isSupported(TemporalField field) | 检查是否支持指定的字段。 |
R query(TemporalQuery query) | 使用指定的查询查询偏移量。 |
ValueRange range(TemporalField field) | 获取指定字段的有效值范围。 |
static Month valueOf(String name) | 根据指定的名称返回枚举常量。 |
static Month[] values() | 返回包含该枚举类型的常量的数组,按声明顺序排列。 |
Java Month枚举类示例
MonthEnumExample1.java
import java.time.*;
import java.time.temporal.*;
public class MonthEnumExample1 {
public static void main(String[] args) {
Month month = Month.valueOf("January".toUpperCase());
System.out.printf("For the month of %s all Sunday are:%n", month);
LocalDate localdate = Year.now().atMonth(month).atDay(1)
.with(TemporalAdjusters.firstInMonth(DayOfWeek.SUNDAY));
Month mi = localdate.getMonth();
while (mi == month) {
System.out.printf("%s%n", localdate);
localdate = localdate.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
mi = localdate.getMonth();
}
}
}
输出:
For the month of JANUARY all Sunday are:
2017-01-01
2017-01-08
2017-01-15
2017-01-22
2017-01-29
Java Month枚举类示例:getValue()
MonthEnumExample2.java
import java.time.*;
public class MonthEnumExample2 {
public static void main(String[] args) {
Month month = Month.from(LocalDate.now());
System.out.println(month.getValue());
System.out.println(month.name());
}
}
输出:
1
JANUARY
Java Month枚举类示例:minus()
MonthEnumExample3.java
import java.time.*;
public class MonthEnumExample3 {
public static void main(String[] args) {
Month month = Month.from(LocalDate.now());
System.out.println(month.minus(2));
}
}
输出:
NOVEMBER
Java Month枚举类示例:plus()
MonthEnumExample4.java
import java.time.*;
public class MonthEnumExample4 {
public static void main(String[] args) {
Month month = Month.from(LocalDate.now());
System.out.println(month.plus(2));
}
}
输出:
MARCH
Java Month枚举类示例:length()
MonthEnumExample5.java
import java.time.*;
public class MonthEnumExample5 {
public static void main(String[] args) {
Month month = Month.from(LocalDate.now());
System.out.println("Total Number of days: " + month.length(true));
}
}
输出:
Total Number of days: 31