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-29Java 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
JANUARYJava 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));
}
}输出:
NOVEMBERJava 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));
}
}输出:
MARCHJava 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