2013-12-16 4 views
0

У меня есть Java-программа, которая работает на машине без системных часов. Я хочу управлять данными, связанными с датой: я сохраняю их в классе DAY с DAY-ID («YYYYMMDD») и переменными YEAR, MONTH, DAY, ... Я хочу подвести итоги этих Дней в НЕДЕЛЯ. Этим НЕДЕЛЯм нужен идентификатор WEEK-ID, возможно, как «ГГГГ» + номер .. или ДЕНЬ-ID с первого дня (понедельника).Выделить даты на идентификаторы недели

Как определить, какие дни идут в НЕДЕЛЯ без жесткого кодирования целый год дат, если я хочу взять 28.-31. дневных месяцев? Далее: Как определить, какой рабочий день (понедельник-пятница) - ДЕНЬ?

Есть ли класс Calender или что-то в этом роде, где я могу получить() эти данные?

+3

Вы можете использовать [joda] (http://www.joda.org/joda-time/) – Jhanvi

+0

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

+1

Да, есть [Календарь] (http://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html) класс, где вы можете [get()] (http: // docs.oracle.com/javase/6/docs/api/java/util/Calendar.html#get(int)) эти данные. Просто google it;) – sp00m

ответ

0

как @ sp00m упомянул его: вы можете использовать Calendar.

Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.WEEK_OF_YEAR, 4); 
int week = cal.get(Calendar.WEEK_OF_YEAR); 

вы можете получить параметр много из календаря

0

Существует международный стандарт для обработки, что кажется, что вы пытаетесь сделать: ISO 8601. Стандарт определяет каждую неделю в году, каждый день недели (понедельник = 1, воскресенье = 7), как обрабатывать недели, перекрывающиеся на конец года, каждый день года (2013-352) и многое другое.

Библиотека Joda-Time предназначена для замены неудобных классов java.util.Date/Calendar. Joda-Time по умолчанию соответствует ISO 8601.

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