как добавить дни к дате (установлено в jlabel)

1
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { 
Date date3=null;
try {
date3 = new SimpleDateFormat("dd-MM-YYYY").parse(jLabel1.getText());
System.out.println(date3);       
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY");             
Calendar cal  = Calendar.getInstance();
cal.setTime(date3);
cal.add(Calendar.DATE, 1);
String expDateString = sdf.format(cal.getTime());
jLabel2.setText(expDateString);                   
} 
catch (ParseException ex)
{
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}                                        

Входное значение jlabel1: 29-09-2014.> Добавить 1 день. Ожидаемый результат: 30-09-2014. (jlabel2) Но ошибки не было, выводится вывод: 30-12-2014. (бессмысленно).

Теги:
swing

2 ответа

1
Лучший ответ

+ Изменить

dd-MM-YYYY

в

dd-MM-yyyy

Поскольку ваш формат String неверен, для SimpleDateFormat Javadoc,

Letter    Date or Time Component  Presentation    Examples
G         Era designator          Text            AD
y         Year                    Year            1996; 96
Y         Week year               Year            2009; 09
  • 0
    Спасибо, это работает.
  • 0
    @TheeranKumar, тогда вы должны принять ответ
0

Вам нужно указать, какое поле будет увеличиваться в вашем случае.

Объект Calendar имеет следующий метод:

public abstract void add(int field, int amount)

Чтобы добавить 1 день в свой Календарь, вы можете сделать это:

cal.add(Calendar.DAY_OF_MONTH, 1);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню