如何在Java中获取给定周数的第一天

2022-09-02 02:49:29

让我解释一下我自己。通过知道星期数和日期的年份:

Date curr = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(curr);
int nweek = cal.WEEK_OF_YEAR;
int year = cal.YEAR;

但现在我不知道如何获得该周第一天的日期。我一直在寻找日历,日期,日期格式,但没有可能有用的...

有什么建议吗?(使用Java工作)


答案 1

这些字段不返回值。这些是常量,用于标识对象中可以获取/设置/添加的字段。要实现所需的目标,首先需要获取 一个 ,清除它并设置已知值。它会自动将日期设置为该周的第一天。CalendarCalendar

// We know week number and year.
int week = 3;
int year = 2010;

// Get calendar, clear it and set week number and year.
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.WEEK_OF_YEAR, week);
calendar.set(Calendar.YEAR, year);

// Now get the first day of week.
Date date = calendar.getTime();

请学习阅读javadocs,学习如何使用类/方法/字段,不要试图在IDE中随意戳;)

也就是说,和是史诗般的失败。如果可以的话,考虑切换到Joda Timejava.util.Datejava.util.Calendar


答案 2

试试这个:

public static Calendar setWeekStart(Calendar calendar) {
  while (calendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
    calendar.add(Calendar.DATE, -1);
  }
  setDayStart(calendar); // method which sets H:M:S:ms to 0
  return calendar;
}

推荐