import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class test {
static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
public static void main(String[] args) throws ParseException {
int start = 20180829;
int end = 20180910;
List<Integer> date = getDate(start, end);
for (Integer integer : date) {
System.out.println(integer);
}
}
private static List<Integer> getDate(int start, int end) throws ParseException {
List<Integer> list = new ArrayList<>();
list.add(start);
int tomorrow = start;
while(tomorrow < end){
//获取明天
tomorrow = getTomorrow(tomorrow);
list.add(tomorrow);
}
return list;
}
private static int getTomorrow(int today) throws ParseException {
Calendar c = Calendar.getInstance();
Date date = intToDate(today);
c.setTime(date);
// DAY_OF_MONTH, DAY_OF_YEAR, DAY_OF_WEEK, 效果都是+1天, 可查看c.add()源码
c.add(Calendar.DAY_OF_MONTH, 1);
// c.add(Calendar.DAY_OF_YEAR, 1);
// c.add(Calendar.DAY_OF_WEEK, 1);
return dateToInt(c.getTime());
}
private static int dateToInt(Date date) {
return Integer.parseInt(sdf.format(date));
}
private static Date intToDate(int date) throws ParseException {
return sdf.parse(Integer.toString(date));
}
}
程序运行结果:
20180829
20180830
20180831
20180901
20180902
20180903
20180904
20180905
20180906
20180907
20180908
20180909
20180910
小记:
yyyyMMdd
我之前写了小写的mm,就在8月31号这里加1天后又得到了8月1号
要写大写的MM,才能得到9月1号。