学习检查给定日期是否是 Java 中的周末。我们将学习使用 java.util.Date 检查作为以及 Java 8 java.time.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;
}
}
类似于新的 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