检查周末的Java程序

位置:首页>文章>详情   分类:Java教程   阅读(245)   2023-06-26 07:54:18

学习检查给定日期是否是 Java 中的周末。我们将学习使用 java.util.Date 检查作为以及 Java 8 java.time.LocalDate 类.

在给定的示例中,我们假设周末是周六或周日。一周的其余五天是工作日。

1. 使用 LocalDate 检查周末

LocalDate.get(ChronoField.DAY_OF_WEEK) 方法返回 1 到 7 范围内的整数值。每个整数值代表不同的工作日。

1 代表星期一,以此类推 6 代表星期六,7 代表星期日。

通过将上述整数值与 DayOfWeek 枚举中的天数进行比较,我们可以确定日期是工作日还是周末。

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.ChronoField;

public class Main
{
    public static void main(final String[] args)
    {
        LocalDate today = LocalDate.now();
        System.out.println("Is weekend : " + isWeekend(today));

        LocalDate someDate = LocalDate.of(2021, 1, 2); // 2nd-Jan-2021
        System.out.println("Is weekend : " + isWeekend(someDate));
    }

    public static boolean isWeekend(final LocalDate ld)
    {
        DayOfWeek day = DayOfWeek.of(ld.get(ChronoField.DAY_OF_WEEK));
        return day == DayOfWeek.SUNDAY || day == DayOfWeek.SATURDAY;
    }
}

2. 使用日期和日历类检查周末

类似于新的 Java 8 日期时间 API,Java 7 也有Calendar.get(Calendar.DAY_OF_WEEK) 方法返回一个整数值,表示一周中的某一天。

整数值范围从 1 到 7,一周从星期日 (1) 开始,到 星期六 (7) 结束。

要检查给定日期是工作日还是周末,我们需要将 java.util.Date 实例转换为 java.util.Calendar 并执行上述比较.

import java.util.Calendar;
import java.util.Date;

public class Main
{
    public static void main(final String[] args)
    {
        Date today = new Date();
        System.out.println("Is weekend : " + isWeekend(today));

        @SuppressWarnings("deprecation")
        Date someDate = new Date(2021, 0, 2);
        System.out.println("Is weekend : " + isWeekend(someDate));
    }

    public static boolean isWeekend(final Date d)
    {
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);

        int day = cal.get(Calendar.DAY_OF_WEEK);
        return day == Calendar.SATURDAY || day == Calendar.SUNDAY;
    }
}

快乐学习!!

地址:https://www.cundage.com/article/check-weekend.html