Java не выполняет некоторые строки моего кода при использовании библиотеки Calendary.
Я пытаюсь получить дату понедельника до 1 текущего месяца.
//Today is Tuesday, 2 January of 2019 (29/01/2019)
Calendar cp1 = GregorianCalendar.getInstance();
cp1.set(Calendar.DAY_OF_MONTH, 1); //THIS LINE DON'T WORKS
cp1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
SimpleDateFormat sdf=new SimpleDateFormat ("dd/MM/yyyy");
System.out.println(sdf.format (cp1.getTime()));
// возвращаем 28/01/2019 вместо 31/12/2018.
ЕСЛИ Я ДОБАВЛЯЮ System.out.println(cp1)
после строки 2, то ява не переходит на строку 2 и работает хорошо.
//Today is Tuesday, 2 January of 2019 (29/01/2019)
Calendar cp1 = GregorianCalendar.getInstance();
cp1.set(Calendar.DAY_OF_MONTH, 1); //THIS LINE WORKS NOW
System.out.println (cp1.getTime());
cp1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
SimpleDateFormat sdf=new SimpleDateFormat ("dd/MM/yyyy");
System.out.println(sdf.format (cp1.getTime()));
// возвращаем 31/12/2018, это правильная дата.
// Почему java не выполнил 2-ю строку в моем первом коде?Является ли ошибка Java?
Ожидаемый результат «31/12/2018».Фактический результат "28/01/2019".