以下是一个静态方法,它接受两个整数参数(表示年份和周数),并返回该周的第一天和最后一天的日期对象:

import java.time.LocalDate;
import java.time.temporal.TemporalField;
import java.time.temporal.WeekFields;

public class WeekUtils {

    public static void main(String[] args) {
        LocalDate[] weekDates = getWeekDates(2023, 23);
        System.out.println('First day of the week: ' + weekDates[0]);
        System.out.println('Last day of the week: ' + weekDates[1]);
    }

    public static LocalDate[] getWeekDates(int year, int week) {
        TemporalField woy = WeekFields.ISO.weekOfWeekBasedYear();
        LocalDate firstDayOfYear = LocalDate.of(year, 1, 1);
        int daysToAdd = (week - 1) * 7;
        LocalDate firstDayOfGivenWeek = firstDayOfYear.with(woy, week).minusDays(daysToAdd);
        LocalDate lastDayOfGivenWeek = firstDayOfGivenWeek.plusDays(6);
        return new LocalDate[]{firstDayOfGivenWeek, lastDayOfGivenWeek};
    }
}

在这个方法中,我们使用了Java 8中的日期时间API来计算给定年份和周数的第一天和最后一天。首先,我们获取了该年份的第一天,然后使用WeekFields.ISO.weekOfWeekBasedYear()方法获取ISO标准下的每年第几周。接下来,我们计算给定周数的第一天是该年份的第几天,并将其从第一天开始减去。最后,我们添加6天来计算给定周数的最后一天。

我们将这两个日期存储在一个数组中,并将其返回给调用者。

Java 计算指定年份和周数的第一天和最后一天

原文地址: https://www.cveoy.top/t/topic/oZtt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录