2015-10-09 4 views
2

Я получил дату из базы данных SQLiteDatabase и отформатировал ее так, как хочу, следующим образом;Android - Как добавить дни до сегодняшнего дня

String steepingDate = (c.getString(3)); 
SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy"); 
Date steepingdate = formatter.parse(steepingDate); 

Теперь я хочу, чтобы дать пользователю возможность увеличить то, что дата в steepingdate на определенное количество дней, которые пользователь может ввести

Я знаю, что вы можете использовать;

Date today = calendar.getTime(); 
calendar.add(Calendar.DAY_OF_YEAR, 10); 

Например, чтобы добавить 10 дней на сегодняшнюю датировать

Но как это сделать так, что он использует steepingdate вместо даты сегодняшнего

Благодаря

UPDATE;

Календарь работает так, как я хочу, но теперь я хочу сохранить новые данные в базе данных, полный код следующий:

String steepingDate = (c.getString(3)); 
SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy"); 
Date steepingdate = formatter.parse(steepingDate); 

Integer amountDays = Integer.parseInt(TSExtend.getText().toString()); 

Calendar ca = Calendar.getInstance(); 
ca.setTime(steepingdate); 
ca.add(Calendar.DAY_OF_YEAR, amountDays); 

DateFormat dateFormat = new SimpleDateFormat("dd/MMM/yyyy"); 
String newDate = dateFormat.format(ca); 

Я получаю сообщение об ошибке;

Плохой класс: класс java.util.GregorianCalendar

Любые идеи?

+0

Вы хотите добавить десять дней в storingDate? – Blackbelt

+0

Это мой пример, количество дней будет определено пользователем, которое я могу получить int из editText, но не уверен, как добавить номер в steepingDate – Sjharrison

ответ

10

Чтобы добавить 10 дней steepingdate, вы можете использовать:

Calendar calendar = Calendar.getInstance(); 
calendar.setTime(steepingdate); 
calendar.add(Calendar.DAY_OF_YEAR, 10); 

это число обеспечивается с помощью пользовательского интерфейса, вы можете использовать View.OnClickListener и когда OnClick обжигают, считывать значение от EditText и использовать это значение вместо 10

+1

Отлично работает! спасибо – Sjharrison

+0

Привет @Blackbelt, я отредактировал мое сообщение, пожалуйста, просмотрите обновления, чтобы узнать, есть ли у вас решение – Sjharrison

+0

это время компиляции или время выполнения? – Blackbelt

3

Установите время календаря на дату, затем добавьте дни

Calendar cal = Calendar.getInstance(); 
cal.setTime(steepingdate); 
cal.add(Calendar.DATE, 10); 

UPDATE:

Вы не можете непосредственно форматировать календарь, сначала получить дату из календаря, то формат Это.

String newDate = dateFormat.format(ca.getTime()); 
+0

Спасибо! отлично работал – Sjharrison

+0

привет, но вы можете посмотреть на мой вопрос как на наличие большего количества трудностей. – Sjharrison

+0

Попробуйте мой обновленный ответ –