2015-07-22 4 views
3

Как получить неделю года в gwt? Я пытался получить неделю в году, но не смог. Пожалуйста, направляйте меня. Я пробовал использовать приведенный ниже код, но он печатает неделю дня не весь год.Как получить неделю года в gwt

DateTimeFormat format = DateTimeFormat.getFormat("c"); 
String dayOfWeek = format.format(new Date()); 
E12CommonUtils.printOnConsole("dayOfWeek ="+dayOfWeek); 
+0

В классе CalendarUtil есть только getStartingDayOfWeek(). Из этого как мы можем получить неделю целого года? –

+0

возможно дубликат [Как получить неделю года цифры в GWT] (http://stackoverflow.com/questions/23938938/how-to-get-week-of-year-figure-in-gwt) – alkis

+0

Ен я пытался таким образом, но он дает результат как 0. –

ответ

0

Ниже вы сделаете все, что пожелаете.

Date date = new Date(); 
Date yearStart = new Date(date.getYear(), 0, 0); 

double week = (date.getTime() - yearStart.getTime())/(double)(7 * 24 * 60 * 60 * 1000); 
System.out.println((int)Math.ceil(week)); 
+0

Это сработало! Спасибо Alkis –

+1

Вы уверены? 2015-01-06 - 2015-W02, а не 2015-W01; и 2016-01-01 - в 2015 году - W53. Вот почему [ 'java.text.SimpleDateFormat'] (http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html) имеет отдельный символ«год»и«недели год". Некоторое время назад, я работал над реализацией в C: https://github.com/GNOME/libxslt/blob/d20a5ab03c195870e3d27b14965d1ed6f3ae0aed/libexslt/date.c#L2121-L2188 Это определенно не так просто. –

+0

Да, это не так просто. Я видел реализацию календаря на Java, и это намного больше. Это событие зависит от того, в какой день начинается неделя. Более того, первая неделя года может быть в прошлом году. Я взял реализацию отсюда http://stackoverflow.com/questions/23938938/how-to-get-week-of-year-figure-in-gwt, и я скорректировал его по спецификации OP. Я опубликовал это как ответ, так как ОП согласился, что он решил проблему. – alkis

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