Я разрабатываю приложение в JAVA swing, поскольку мне нужна разница в дате с текущей даты, например, если сегодня 16/04/2013
, тогда он должен вернуть 15/04/2013
. Я пробовал следующий код:Разница даты с текущей даты в java
Calendar cal = new GregorianCalendar();
Calendar cal2 = new GregorianCalendar();
cal.roll(Calendar.DAY_OF_YEAR, -1);
//if within the first 30 days, need to roll the year as well
if(cal.after(cal2)){
cal.roll(Calendar.YEAR, -1);
}
System.out.println("Year " + cal.get(Calendar.YEAR));
System.out.println("Month " + cal.get(Calendar.MONTH));
System.out.println("Day " + cal.get(Calendar.DAY_OF_MONTH));
В этом коде я ожидал получить один день назад. Но вместо этого я получаю один месяц назад. Пример. если сегодня 16/04/2013
, ожидаемый результат равен 15/04/2013
, но я получаю 15/03/2013 (один месяц назад) в качестве выхода.
вы Обязаны ли использовать календарь или было бы приемлемо использовать JodaTime? – fvu
try' cal.add (Calendar.DAY_OF_MONTH, -1); ' – PermGenError
Об этом отвечен раньше: http://stackoverflow.com/questions/3299972/difference-in-days-between-two-dates-in-java – user1697575