2 sky54bc sky54bc 于 2014.08.11 15:17 提问

使用java对给定的两个日期之间的日期进行遍历

使用java对给定的两个日期之间的日期进行遍历,比如startTime 是 2014-07-11
endTime 是 2014-08-11 如何把他们之间的日期获取并遍历出来。

5个回答

hyh279304908
hyh279304908   2015.05.21 16:56
已采纳

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class SplitTime {

private static List<Date> dateSplit(Date startDate, Date endDate)
        throws Exception {
    if (!startDate.before(endDate))
        throw new Exception("开始时间应该在结束时间之后");
    Long spi = endDate.getTime() - startDate.getTime();
    Long step = spi / (24 * 60 * 60 * 1000);// 相隔天数

    List<Date> dateList = new ArrayList<Date>();
    dateList.add(endDate);
    for (int i = 1; i <= step; i++) {
        dateList.add(new Date(dateList.get(i - 1).getTime()
                - (24 * 60 * 60 * 1000)));// 比上一天减一
    }
    return dateList;
}

public static void main(String[] args) throws ParseException {
    try {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date start = sdf.parse("2015-4-20");
        Date end = sdf.parse("2015-5-2");
        List<Date> lists = dateSplit(start, end);
        if (!lists.isEmpty()) {
            for (Date date : lists) {
                System.out.println(sdf.format(date));
            }
        }
    } catch (Exception e) {
    }
}

}
运行结果:
2015-05-02
2015-05-01
2015-04-30
2015-04-29
2015-04-28
2015-04-27
2015-04-26
2015-04-25
2015-04-24
2015-04-23
2015-04-22
2015-04-21
2015-04-20

lovezwlhjj
lovezwlhjj   2014.08.11 15:44

可以转换成Calendar然后调用Date的方法compareTo()进行比较循环。

liuqi2577252
liuqi2577252   2014.08.11 16:37

jquery-ui-timepicker这个插件里有现成的

msyinping123
msyinping123   2014.08.11 17:47

select * form 表名 where startTime>'2014-07-11' and endTime<'2014-08-11 '

zhufaming12
zhufaming12   2014.08.12 21:39

package uhz8_9;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CalendarTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Calendar start=Calendar.getInstance();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
start.set(2014, 7, 1);
//获取6当月的最大值
int day=start.getActualMaximum(start.DATE);
//System.out.println(day);
for(int i=1;i<=day;i++){
start.set(2014, 6, i);
System.out.println(sdf.format(start.getTime()));
if(i==day){
for(int j=1;j<=11;j++){
start.set(2014, 7,j);
System.out.println(sdf.format(start.getTime()));
}
}
}
}
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!