如何根据用户从datePicker中选择的内容将特定日期添加到特定日期

时间:2016-02-10 09:50:45

标签: android date datepicker calendar

我想在用户从日期选择器中选择的特定日期添加一些月份。 例如,如果用户选择2016年1月31日,如果月数为1则应显示2016年3月2日或2016年3月30日应显示2016年4月30日等。  如果月数大于12,则应添加年份。 这是我的日期选择器:

 @Override
    protected Dialog onCreateDialog(int id) {
        // TODO Auto-generated method stub
        if (id == 999) {
            DatePickerDialog dialog = new DatePickerDialog(this, myDateListener, year, month, day);
            dialog.getDatePicker().setMaxDate(new Date().getTime());
            return dialog;
        }
        return null;
    }

    private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
            // TODO Auto-generated method stub
            // arg1 = year
            // arg2 = month
            // arg3 = day
            showDate(arg1, arg2+1, arg3);
        }
    };

    private void showDate(int year, int month, int day) {

        date.setText(new StringBuilder().append(day).append("/")
                .append(month).append("/").append(year));
    }

我将年,月,日作为整数值。

请帮忙......我不知道如何开始?

2 个答案:

答案 0 :(得分:1)

public static Date addDays(Date date, int days)
{
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  cal.add(Calendar.DATE, days); //minus number would decrement the days
  return cal.getTime();
}

https://stackoverflow.com/a/18143654/1811771

复制

N.B.如果你想从日,月,年制作日期

String str = year + "/" + month + "/" + day;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
Date date = formatter.parse(str);

答案 1 :(得分:1)

试试这个。这对我有用。

//如果你想在60天后约会。 yourCustomDate - 您要设置新日期的日期

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(yourCustomDate);
        calendar.add(Calendar.DAY_OF_YEAR, 60);
        Date afterSixtyDaysDate = calendar.getTime();