Доброго времени суток. Необходимо сделать так, чтоб при выпадании дня на праздничный день, дата сдвинулась на следующий день.
Calendar cal = new GregorianCalendar();
DateFormatSymbols symbols = new DateFormatSymbols();
for (int i=0; i<=6; i++){
cal.add(Calendar.MONTH, 1);
if (cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY) {
cal.add(Calendar.SATURDAY,-1);
}
}
System.out.println((cal.get(Calendar.DATE)+" "+
symbols.getMonths()[cal.get(Calendar.MONTH)]+" "+
cal.get(Calendar.YEAR)+", "+
symbols.getWeekdays()[cal.get(Calendar.DAY_OF_WEEK)])
);
Берите библиотеку JollyDay - он поддерживает русские праздники:
HolidayManager m = HolidayManager.getInstance(HolidayCalendar.RUSSIA);
Set<Holiday> holidays = m.getHolidays(2017);
for(Holiday holiday:holidays) {
System.out.println("Это какой-то праздник: "+holiday.getDate());
}
Calendar cal = new GregorianCalendar();
DateFormatSymbols symbols = new DateFormatSymbols();
Calendar h = new GregorianCalendar();
h.set(Calendar.MONTH, Calendar.MARCH);
h.set(Calendar.DAY_OF_MONTH, 8);
for (int i=0; i<=6; i++){
cal.add(Calendar.MONTH, 1);
if (cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY) {
cal.add(Calendar.SATURDAY,-1);
} else if (cal.get(Calendar.DATE)== h.get(Calendar.DATE)) {
cal.add(Calendar.DAY_OF_MONTH,1);
}
System.out.println((cal.get(Calendar.DATE)+" "+symbols.getMonths()[cal.get(Calendar.MONTH)]+" "+cal.get(Calendar.YEAR)+", "+symbols.getWeekdays()[cal.get(Calendar.DAY_OF_WEEK)]));
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники