如何在Java中获取给定周数的第一天
让我解释一下我自己。通过知道星期数和日期的年份:
Date curr = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(curr);
int nweek = cal.WEEK_OF_YEAR;
int year = cal.YEAR;
但现在我不知道如何获得该周第一天的日期。我一直在寻找日历,日期,日期格式,但没有可能有用的...
有什么建议吗?(使用Java工作)
让我解释一下我自己。通过知道星期数和日期的年份:
Date curr = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(curr);
int nweek = cal.WEEK_OF_YEAR;
int year = cal.YEAR;
但现在我不知道如何获得该周第一天的日期。我一直在寻找日历,日期,日期格式,但没有可能有用的...
有什么建议吗?(使用Java工作)
这些字段不返回值。这些是常量,用于标识对象中可以获取/设置/添加的字段。要实现所需的目标,首先需要获取 一个 ,清除它并设置已知值。它会自动将日期设置为该周的第一天。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 Time。java.util.Datejava.util.Calendar
试试这个:
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;
}