2013-09-20 6 views
-2

Мне нужно получить номер предыдущей недели. Например. Это неделя 38, мне нужно получить неделю 37. Как лучше всего продолжить?Как получить номер предыдущей недели

int currentWeekNumber= now.get(Calendar.WEEK_OF_YEAR); 
int previousWeekNum = // How to get the previous week number?? 

    System.out.println("currentWeekNum = " + currentWeekNumber); 
    System.out.println(" previousWeekNum = " + previousWeekNum); 
+4

Ммм ... как о 'currentWeekNumber - 1'? –

+1

currentWeekNumber - 1? – DDK

+0

Не сработал бы для вас математически просто взять один из currentWeekNumber? Или вы хотите использовать только Календарь? –

ответ

-1

У вас есть текущий счетчик посещений. Тогда currentWeek -1 даст предыдущую неделю.

int previousWeekNum = 0; 
calender.add(Calendar.WEEK_OF_YEAR, -1); 
previousWeekNum = calender.get(Calendar.WEEK_OF_YEAR); 
3

-1 будет работать правильно?

System.out.println("currentWeekNum = " + currentWeekNumber); 
System.out.println("previousWeekNum = " + currentWeekNumber-1); 

Side Примечание: Не забудьте проверить текущую неделю в первой неделе или нет :)

Как выше решение немного расплывчато, и как другие указывали (вы также нашли), Go для оного календаря метод, который является более точным.

cal.add(Calendar.WEEK_OF_YEAR, -1); //Then use this instance. 
int preveWeekNum = cal.get(Calendar.WEEK_OF_YEAR); 
+0

@Suresh currentWeekNumber-1 is previousWeekNum – newuser

+0

@newuser да да :) –

+1

ну, есть один случай, когда это должно вернуть 52, но вернет ноль ... – devnomore

2

Единственный правильный путь, кажется:

cal.add(Calendar.WEEK_OF_YEAR, -1); 
int previousWeekNum = cal.get(Calendar.WEEK_OF_YEAR); 
+0

Несколько лет имеют неделю 53, так что только второй подход правильный , – kiheru

+0

Спасибо, я этого не понимал. – devnomore

+0

Хороший ответ, опять правильный подход. –

4

THis работал хорошо для меня .... это правильный синтаксис, чтобы получить его

Calendar now = Calendar.getInstance(); 

    int currentWeek = now.get(Calendar.WEEK_OF_YEAR); 
    System.out.println("current week = " + currentWeek); 

now.add(Calendar.WEEK_OF_YEAR, -1); 
    int test = now.get(Calendar.WEEK_OF_YEAR); 
    System.out.println(" test date = " + test); 
+1

+1, единственный ответ, который правильно управляет новым годом. – kiheru

+1

Хороший ответ, это единственный правильный подход. –

Смежные вопросы