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

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想