找到给定日期的第一个星期日

时间:2014-09-02 20:54:44

标签: java date calendar

我想在给定日期之前找到第一次出现星期日的日期。

e.g。我有一个方法,除了当前日期,并说日期是今天的日期02-09-2014星期二,该方法将返回过去的星期日31-08-2014的日期。

我有什么方法可以用Java完成它吗?

提前致谢

4 个答案:

答案 0 :(得分:1)

使用java 8,您可以使用其中一个内置TemporalAdjusters

LocalDate today = LocalDate.now();
LocalDate previousSunday = today.with(previous(SUNDAY));
//or if today is a Sunday and you want to return today:
LocalDate previousSunday = today.with(previousOrSame(SUNDAY));

注意:假设静态导入:
import static java.time.DayOfWeek.SUNDAY;
import static java.time.temporal.TemporalAdjusters.previous;

答案 1 :(得分:0)

试试这个:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_WEEK, -(cal.get(Calendar.DAY_OF_WEEK) - 1));
System.out.println(cal.getTime());

答案 2 :(得分:0)

这样的事情会起作用。

Calendar cal = Calendar.getInstance();
int diff = cal.get(Calendar.DAY_OF_WEEK) - Calendar.SUNDAY;
cal.add(Calendar.DAY_OF_MONTH, -diff);
System.out.println(cal.getTime());

答案 3 :(得分:0)

使用java.util.Calendar

减去星期日和现在之间的差异(天数):

Calendar c = Calendar.getInstance();
int day = c.get( Calendar.DAY_OF_WEEK );
c.add( Calendar.DAY_OF_WEEK, Calendar.SUNDAY - day);

你明白了。