Search code examples
androiddatetimedateandroid-date

generate dates between two date in Android


How to get all dates between two dates in Android.

For example. I have two Strings.

String first="2012-07-15";  
String second="2012-07-21"; 

I convert and get dates from these strings.

DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");                                    
DateFormat df2 = new SimpleDateFormat("MMM dd");
String mydate = df2.format(df1.parse(first));

This way I get both dates from first and second String.

Now I also display all dates between these two dates.


Solution

  • it is better not to use any hardcoded values in date calculations. we can rely on java Calendar class methods to do this task

    see the code

    private static List<Date> getDates(String dateString1, String dateString2)
    {
        ArrayList<Date> dates = new ArrayList<Date>();
        DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
    
        Date date1 = null;
        Date date2 = null;
    
        try {
            date1 = df1 .parse(dateString1);
            date2 = df1 .parse(dateString2);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    
        Calendar cal1 = Calendar.getInstance();
        cal1.setTime(date1);
    
    
        Calendar cal2 = Calendar.getInstance();
        cal2.setTime(date2);
    
        while(!cal1.after(cal2))
        {
            dates.add(cal1.getTime());
            cal1.add(Calendar.DATE, 1);
        }
        return dates;
    }
    

    and use it as below

        List<Date> dates = getDates("2012-02-01", "2012-03-01");
        for(Date date:dates)
            System.out.println(date);