Search code examples
javaandroiddaysjava.util.calendar

How add 30 days in current date?


I want to add 30 days in my current date I searched a lot but did not get the proper solution.

my code

 Date date = new Date();
 SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd");
 Calendar c1 = Calendar.getInstance();
 String currentdate = df.format(date);

 try {
     c1.setTime(df.parse(currentdate));
     c1.add(Calendar.DATE, 30);
     df = new SimpleDateFormat("yyyy-MM-dd");
     Date resultdate = new Date(c1.getTimeInMillis());
     String dueudate = df.format(resultdate);
     Toast.makeText(this, dueudate, Toast.LENGTH_SHORT).show();
 } catch (ParseException e) {
     e.printStackTrace();
 }

The output of this code is : 2019-01-29 I don't why it is showing this output can anyone help me.


Solution

  • You need to use

    c1.add(Calendar.DAY_OF_YEAR, 30);
    

    instead of

    c1.add(Calendar.DATE, 30);
    

    Try this:

    Date date = new Date();
    SimpleDateFormat df  = new SimpleDateFormat("YYYY-MM-dd");
    Calendar c1 = Calendar.getInstance();
    String currentDate = df.format(date); // get current date here
    
    // now add 30 day in Calendar instance 
    c1.add(Calendar.DAY_OF_YEAR, 30);
    df = new SimpleDateFormat("yyyy-MM-dd");
    Date resultDate = c1.getTime();
    String dueDate = df.format(resultDate);
    
    // print the result
    Utils.printLog("DATE_DATE :-> " + currentDate);
    Utils.printLog("DUE_DATE :-> " + dueDate);
    

    OUTPUT

    2019-06-04 14:43:02.438 E/XXX_XXXX: DATE_DATE :-> 2019-06-04
    2019-06-04 14:43:02.438 E/XXX_XXXX: DUE_DATE :-> 2019-07-04