获取本周星期一的日期

4

我已经实现了一种方法来获取当前周的星期一日期,并将星期一指定为每周的第一天。

但是,无论我做什么,它总是返回Sun Mar 24 15:03:07 GMT 2013。我无法看出问题在哪里。有人能帮忙吗?

public static Date getFirstDayOfWeekDate()
{
    Calendar cal = Calendar.getInstance();
    cal.setFirstDayOfWeek(2);
    cal.set(Calendar.DAY_OF_WEEK,
    cal.getActualMinimum(Calendar.DAY_OF_WEEK));
    Date firstDayOfTheWeek = cal.getTime();
    return firstDayOfTheWeek;
}
4个回答

3

试试这个:

public static Date getFirstDayOfWeekDate() {
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.DAY_OF_WEEK,
            cal.getActualMinimum(Calendar.DAY_OF_WEEK));
    Date now = new Date();
    cal.setTime(now);
    int week = cal.get(Calendar.DAY_OF_WEEK);
    return new Date(now.getTime() - 24 * 60 * 60 * 1000 * (week - 1));
}

1

对我来说有效:

    Calendar c = Calendar.getInstance();
    c.setFirstDayOfWeek(Calendar.MONDAY);
    c.setTime(new Date());
    int today = c.get(Calendar.DAY_OF_WEEK);
    c.add(Calendar.DAY_OF_WEEK, -today+Calendar.MONDAY);
    System.out.println("Date "+c.getTime());

1
这将给我下一个星期一。 - b4da

1
只需将星期几加一即可:

Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, cal.getActualMinimum(Calendar.DAY_OF_WEEK) + 1);
return cal.getTime();

最短的方法,但是它缺少 cal.setFirstDayOfWeek(Calendar.MONDAY);。 - Pimentoso

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接