2013-03-19 4 views
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; 
} 

ответ

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

Это дает мне в следующий понедельник. –

0

Просто добавьте в день недели:

Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.DAY_OF_WEEK, cal.getActualMinimum(Calendar.DAY_OF_WEEK) + 1); 
return cal.getTime(); 
Смежные вопросы