Search code examples
javaandroiddateandroid-calendardays

Is there another way to add days in android calendar picker


I'm trying to add days that exceed the month days. example July 1,2019 and I add 32 days so the result would be August 2,2019.

SimpleDateFormat format = new SimpleDateFormat("mm/dd/yyy");
SimpleDateFormat Dateformat = new SimpleDateFormat("mm/dd/yyy");
String getDate = date_pick.getText().toString();
Date mDate;
Date result_desu;
try {
    mDate = format.parse(getDate);
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(mDate);
    calendar.add(Calendar.DATE, 32);
    String formattedDate = Dateformat.format(calendar.getTime());
    date_result.setText(formattedDate);    // format output
} catch (ParseException e) {
    e.printStackTrace();
}

I've been using this code but it turns out the days only reset with the same month example: July 1,2019 ; result: July 2,2019.


Solution

  • Try this:

    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.text.ParseException;
    class Main{
       public static void main(String args[]){
        String oldDate = "2019-07-1";  
        System.out.println("Date before Addition: "+oldDate);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar c = Calendar.getInstance();
        try{
           c.setTime(sdf.parse(oldDate));
        }catch(ParseException e){
            e.printStackTrace();
         }
    
        c.add(Calendar.DAY_OF_MONTH, 32);  
        String newDate = sdf.format(c.getTime());  
        System.out.println("Date after Addition: "+newDate);
       }
    }
    

    Output:

    Date before Addition: 2019-07-1
    Date after Addition: 2019-08-02