При автоматизации отчета в 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);
Задать первый день недели можно методом Calendar.setFirstDayOfWeek:
cal.setFirstDayOfWeek(Calendar.TUESDAY);
//номер недели, начиная со вторника -1
week = cal.get(Calendar.WEEK_OF_YEAR)-1;
если далее нужно будет на этом же объекте календаря считать с понедельника то потребуется вызвать cal.setFirstDayOfWeek(Calendar.MONDAY).
Первый день недели по-умолчанию зависит от локали, т.ч. для пущей стабильности не помешает и понедельник устанавливать явно.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей