Я хочу получить номер дня .. т.е. 1 января - день 1, 2 января - день 2, 1 февраля - день 32, а 31 декабря - день 365 или 366, в зависимости от високосного года или нет
я использовал всевозможные методы, такие как date1 - date2 и т.д... но, кажется, у меня ничего не работает, может быть, я не могу понять правильную логику .. я хочу посчитать и добавить количество прошедших месяцев плюс количество дней текущего месяца, т. е. сегодня 21 сентября 2012 - это номер дня (31 (январь) + 29 (февраль) + 31 (март) + 30 (апрель) + 31 (май) + 30 (июнь) + 31 (июль) + 31 (август) + 20 (сентябрь)) = 264-й день, и они будут продолжать добавлять плюс один каждый раз, когда прошел день ... Спасибо
Попробуйте установить дату в календаре на дату в задаче, вы просили 21 сентября, но в коде указали 8 июня.
Вот обновленный код, который выдает 265 вместо:
intyear= Calendar.getInstance().get(Calendar.YEAR); GregorianCalendargc=newGregorianCalendar(); gc.set(Calendar.DAY_OF_MONTH, 21); // you asked for 21st Sept but put 8 gc.set(Calendar.MONTH, Calendar.SEPTEMBER); // you aksed for 21st Sept but put JUNE gc.set(Calendar.YEAR, year); intnumberofDaysPassed= gc.get(Calendar.DAY_OF_YEAR); System.out.println(numberofDaysPassed);
Кстати, вам не нужно устанавливать месяц, день и т.д. В календаре, по умолчанию используется значение "сейчас"...
Ответ 4
Используя Java 8, вы можете сделать это: int n = LocalDate.now().get(ChronoField.DAY_OF_YEAR);