📜  Java8 DayOfWeek枚举(1)

📅  最后修改于: 2023-12-03 15:31:35.421000             🧑  作者: Mango

Java8 DayOfWeek枚举介绍

在Java 8中,DayOfWeek是一个枚举类,它提供了一组表示星期几的常量。DayOfWeek的定义如下:

public enum DayOfWeek implements TemporalAccessor, TemporalAdjuster {
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY;
}

你可以通过DayOfWeek的七个常量之一来表示一周中的一天。例如, MONDAY代表星期一,TUESDAY代表星期二,以此类推。

DayOfWeek提供了一些方法来与日期和时间进行操作。下面介绍几个常用方法:

getValue()

getValue()方法返回这个DayOfWeek常量的值,范围为1到7,其中1代表星期一,2代表星期二,以此类推。

of()

of(int dayOfWeek)方法返回表示给定值的DayOfWeek枚举。例如,DayOfWeek.of(1)返回MONDAY。

getDisplayName()

getDisplayName(TextStyle style, Locale locale)方法返回用于表示此DayOfWeek的文本名称。可以通过参数指定返回的文本名称的样式和地区。

plus()

plus(long days)方法返回在此DayOfWeek之后指定天数的DayOfWeek。例如,如果此DayOfWeek为星期三,则plus(4) 返回星期日。

minus()

minus(long days)方法返回在此DayOfWeek之前指定天数的DayOfWeek。例如,如果此DayOfWeek为星期三,则minus(2) 返回星期一。

下面是一个例子:
import java.time.DayOfWeek;
import java.time.format.TextStyle;
import java.util.Locale;

public class DayOfWeekExample {
  public static void main(String[] args) {
    DayOfWeek day = DayOfWeek.MONDAY;
    System.out.println("DayOfWeek: " + day); // DayOfWeek: MONDAY
    
    System.out.println("Value: " + day.getValue()); // Value: 1
    
    System.out.println("Display name: " + day.getDisplayName(TextStyle.FULL, Locale.US)); // Display name: Monday
    
    DayOfWeek newDay = day.plus(3);
    System.out.println("New day: " + newDay); // New day: THURSDAY
    
    newDay = day.minus(2);
    System.out.println("New day: " + newDay); // New day: SATURDAY
  }
}

输出:

DayOfWeek: MONDAY
Value: 1
Display name: Monday
New day: THURSDAY
New day: SATURDAY

DayOfWeek可以方便地与日期和时间一起使用,例如,可以通过LocalDate的getDayOfWeek()方法获取日期对应的DayOfWeek,也可以通过TemporalAdjusters获取下一个星期一等等。 DayOfWeek是Java 8的一个有用的新功能,尤其是在处理日期和时间时。