Как определить номер недели если неделя начинается с определенного дня?

188
27 марта 2018, 00:52

При автоматизации отчета в excel, застрял с одной формулой. Формула позволяет проставить номер недели исходя из даты.

Формула:

=ЕСЛИ(AH2="Ночь";НОМНЕДЕЛИ(K2;12)-1&" нед.";НОМНЕДЕЛИ(K2;2)-1&" нед.")

В столбце К записаны даты в таком формате.

07.10.2017 14:02:53

В столбце AH проставляется ночь/день.

Есть идеи как это реализовать?

Вот так формула не учитывает числа 12 и 2, называемые "тип возврата". из справочника 12 - неделя начинается со вторника. 2 - неделя начинается с понедельника.

int week = 0;
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
try {
    cal.setTime(sdf.parse(dateTo));
} catch (ParseException e1) {
    e1.printStackTrace();
}
if(rowX[33].equals("Ночь")){
    week = cal.get(Calendar.WEEK_OF_YEAR)-1;
} else {
    week = cal.get(Calendar.WEEK_OF_YEAR)-1;
}
rowX[32] = String.valueOf(week);
Answer 1

Задать первый день недели можно методом Calendar.setFirstDayOfWeek:

cal.setFirstDayOfWeek(Calendar.TUESDAY);
//номер недели, начиная со вторника -1
week = cal.get(Calendar.WEEK_OF_YEAR)-1; 

если далее нужно будет на этом же объекте календаря считать с понедельника то потребуется вызвать cal.setFirstDayOfWeek(Calendar.MONDAY).

Первый день недели по-умолчанию зависит от локали, т.ч. для пущей стабильности не помешает и понедельник устанавливать явно.

READ ALSO
Serializable vs Externalizable

Serializable vs Externalizable

В чем разница между этими этими видами сериализациямиИ в Serialilzable я могу определить методы (private void writeObject(ObjectOutputStream in) и private void readObject(ObjectInputStream...

153
JFrame в Jave то показывает, то не показывает элементы

JFrame в Jave то показывает, то не показывает элементы

Работаю в jave, IntelliJСоздаю Frame (Окно) в который помещаю разные объекты такие как: Panel, Label, Button и TextArea

192
Как отсортировать в стриме по двум полям с учетом null

Как отсортировать в стриме по двум полям с учетом null

ЗдравствуйтеУ меня есть лист таких объектов

185