Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Вычитание дат


Автор: Su_ 29.6.2010, 17:54
Добрый день!

Допусти у меня  есть текущая дата 

Код

 SimpleDateFormat df3 = new SimpleDateFormat("dd.MM.yyyy");
 String present_date=df3.format(Calendar.getInstance().getTime());
 System.out.println("date now is: "+ present_date);

Код

date now is: 29.06.2010

Как мне из нее вычесть 2 дня ? и получить значение 27.06.2010 ?

p.s. 
Вычесть именно в формате даты, что бы не получилось ситуации когда 01.01.2010 не получить -1.01.2010 smile

Автор: Dummy 29.6.2010, 19:39
Код

Calendar cal = Calendar.getInstance();

cal.setLenient(false);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.MONTH, Calendar.JANUARY);

cal.add(Calendar.DAY_OF_MONTH, -2);

Автор: Su_ 29.6.2010, 21:02
Код

Calendar cal = Calendar.getInstance();
cal.setLenient(false);
cal.setTime(Calendar.getInstance().getTime());
prints(">> "+cal.DAY_OF_MONTH+" "+cal.MONTH);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.MONTH, Calendar.JANUARY);
cal.add(Calendar.DAY_OF_MONTH, -2);
prints(">> "+cal.DAY_OF_MONTH+" "+cal.MONTH);


Выводит 
Код

>> 5 2
>> 5 2


Не понял как из этого взять реальную дату?

Автор: jk1 29.6.2010, 21:13
Код

Calendar cal = Calendar.getInstance();
cal.setLenient(false);
System.out.println(DateFormat.getInstance().format(cal.getTime()));     
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.MONTH, Calendar.JANUARY);
System.out.println(DateFormat.getInstance().format(cal.getTime()));
cal.add(Calendar.DAY_OF_MONTH, -2);
System.out.println(DateFormat.getInstance().format(cal.getTime()));

Автор: Su_ 29.6.2010, 21:22
Забыл про формы вывода даты ) Спасибо !! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)