- import java.text.DateFormat;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
-
- public class R {
- private static final DateFormat FORMATTER = new SimpleDateFormat("yyyy-MM-dd");
- public static void main(String[] args) throws ParseException {
- Calendar startDay = Calendar.getInstance();
- Calendar endDay = Calendar.getInstance();
-
- startDay.setTime(FORMATTER.parse("2010-02-01"));
- endDay.setTime(FORMATTER.parse("2010-05-09"));
-
- printDay(startDay, endDay);
- }
-
- private static void printDay(Calendar startDay, Calendar endDay) {
-
- if (startDay.compareTo(endDay) >= 0) {
- return;
- }
-
- Calendar currentPrintDay = startDay;
- while (true) {
-
- currentPrintDay.add(Calendar.DATE, 1);
-
- if (currentPrintDay.compareTo(endDay) == 0) {
- break;
- }
-
- System.out.println(FORMATTER.format(currentPrintDay.getTime()));
- }
- }
- }
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) {
}
}