Java 计算两个日期之间有哪些日期

来源:互联网 发布:中国单晶叶片 知乎 编辑:程序博客网 时间:2024/06/05 20:02

有时候我们会遇到这样的需求:比如在2015-12-12 至 2016-01-22号之间有哪些日期呢?其实很简单 ,我们做报表的时候有可能会用到,根据用户选择的时间段,显示该时间段的具体数据。
下面直接看代码 , 下面代码可以直接复制粘贴使用。

import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.List;/** *  * @author ZSL * @DESC 计算两个日期之间有哪些日期 */public class DateUtil {    public static List getDays(String beginTime,String endTime){        DateFormat FORMATTER = new SimpleDateFormat("yyyy-MM-dd");          List<Date> list=null;          try{              Calendar startDay = Calendar.getInstance();              Calendar endDay = Calendar.getInstance();              startDay.setTime(FORMATTER.parse(beginTime));              endDay.setTime(FORMATTER.parse(endTime));              // 给出的日期开始日比终了日大则不执行打印              list=new ArrayList<Date>();              Date s1=new Date();              s1.setDay(beginTime);              list.add(s1);              if(!beginTime.equals(endTime)){                  if(startDay.compareTo(endDay)<=0){                      //现在打印中的日期                      Calendar currentPrintDay = startDay;                      while (true){                          Date s=new Date();                          // 日期加一                          currentPrintDay.add(Calendar.DATE, 1);                          // 日期加一后判断是否达到终了日,达到则终止打印                          if (currentPrintDay.compareTo(endDay) == 0) {                              break;                          }                          s.setDay(FORMATTER.format(currentPrintDay.getTime()));                          list.add(s);                      }                      Date s2=new Date();                      s2.setDay(endTime);                      list.add(s2);                  }              }          }catch (Exception e){              e.printStackTrace();          }        return list;     }    public static void main(String[] args) {            List<Date> list = getDays("2015-12-12", "2016-01-22");            for (Date date : list) {                System.out.println(date.getDay());            }    }}class Date{    private String day;    public String getDay() {        return day;    }    public void setDay(String day) {        this.day = day;    }}


这里写图片描述


0 0
原创粉丝点击