public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
Calendar c = Calendar.getInstance();
/*
Решила в итоге так
DateFormatSymbols dfs = new DateFormatSymbols(Locale.ENGLISH);
String[] months = dfs.getMonths();
ArrayList<String> monthsName = new ArrayList<>(Arrays.asList(months));
System.out.println(s + " is the " + (monthsName.indexOf(s)+1) + " month");//напишите тут ваш код
*/
ArrayList<String> month = new ArrayList<>();
for (int i = 0; i < 12; i++) {
c.set(MONTH, i);
month.add((c.getDisplayName(MONTH,Calendar.LONG,Locale.ENGLISH).toString()));
}
// System.out.println(month.toString());
// [January, March, March, April, May, June, July, August, September, October, November, December]
}
Валентина Тарасова
25 уровень
В чем ошибка при добавлении месяца?
Решен
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
IceBergMaster
29 января 2019, 11:20решение
Я себе чуть мозг не сломал этой проблемой)) Проблема в том, что если сегодня "29 января" и мы пытаемся изменить месяц на февраль, то получим дату "29 февраля", а так как год невисокосный, то такой даты просто не существует, соответственно она автоматически переключается на "1 марта", думаю как-то так.
Но потом возник другой вопрос, почему при коде
по прежнему выводиться "March"? Ведь логично предположить, что первый set изменит дату на "1 мрата", а второй уже на "1 февраля", но нет) а при коде вывод будет:
March
February
Исходя из полученной информации, сделал вывод(не факт, что верный), что метод "set" изменяет значение, но проверку на существование установленной даты не производит, а вот метод getDisplayName как раз таки смотрит и проверяет, что "29 февраля" не существует в этом году, устанавливает "1 марта" и возвращает пользователю March, потом второй set таки изменяет на "1 февраля" и getDisplayName возвращает уже February. +2