LocalDate now
//月第一天
LocalDate first = (());
//月最后一天
LocalDate last = (());
//年第一天
(());
//年最后一天
(();
public static void main(String[] args) {
LocalDate now = ();
// 今天是星期几
DayOfWeek dayOfWeek = ();
("今天星期" + ());
// 本周的第一天(包括当天)
LocalDate first = (());
("本周第一天:" + first);
// 本周的最后一天(不包括当天)
LocalDate last = (7 - ()-1);
("本周最后一天:" + last);
// 上周的第一天(包括当天)
("上周的第一天:" + (1));
// 上周的最后一天(不包括当天)
("上周的最后一天:" + (1));
}
/**
* 获取一年中第N周的日期
*
* @param year 年
* @param num 第N周
* @param minimalDaysInFirstWeek 第一周至少几天
* @param dayOfWeek 星期
* @return
*/
public static LocalDate getDateByYearAndWeekNumAndDayOfWeek(Integer year, Integer num, Integer minimalDaysInFirstWeek, DayOfWeek dayOfWeek) {
//初始化,第一周至少1天
WeekFields wfs = (, minimalDaysInFirstWeek);
//一年最后一天日期的LocalDate,如果该天获得的周数为1或52,那么该年就只有52周,否则就是53周
//获取指定时间所在年的周数
int maxNum = (year, 12, 31).get(());
maxNum = maxNum == 1 ? 52 : maxNum;
(year + "年有" + maxNum + "周");
//周数小于10在前面补个0
String numStr = num < 10 ? "0" + (num) : (num);
//2019-W01-01获取第一周的周一日期,2019-W02-07获取第二周的周日日期
String weekDate = ("%s-W%s-%s", year, numStr, ());
return (weekDate, DateTimeFormatter.ISO_WEEK_DATE);
}
public static void main(String[] args) {
((2023, 1,1, ));
}