how to get a list of dates between two dates in java

后端 未结 22 2004
余生分开走
余生分开走 2020-11-22 13:24

I want a list of dates between start date and end date.

The result should be a list of all dates including the start and end date.

22条回答
  •  天命终不由人
    2020-11-22 13:53

    One solution would be to create a Calendar instance, and start a cycle, increasing it's Calendar.DATE field until it reaches the desired date. Also, on each step you should create a Date instance (with corresponding parameters), and put it to your list.

    Some dirty code:

        public List getDatesBetween(final Date date1, final Date date2) {
        List dates = new ArrayList();
    
        Calendar calendar = new GregorianCalendar() {{
            set(Calendar.YEAR, date1.getYear());
            set(Calendar.MONTH, date1.getMonth());
            set(Calendar.DATE, date1.getDate());
        }};
    
        while (calendar.get(Calendar.YEAR) != date2.getYear() && calendar.get(Calendar.MONTH) != date2.getMonth() && calendar.get(Calendar.DATE) != date2.getDate()) {
            calendar.add(Calendar.DATE, 1);
            dates.add(new Date(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE)));
        }
    
        return dates;
    }
    

提交回复
热议问题