java 获取一个时间段 如最近20天的时间列表

获取一段时间的列表 如3/29 - 4/19 中间20天的时间 此方法不会出现日期错乱的情况 

/** 

* 获取一段时间的列表 

*/ 

public static List getPeroidTime () { 

List time = new ArrayList<>(); // 返回的集合 

int lenght = 20; // 获取天数的长度 

int MDAY = 0; // 天数标志 

String tday =”“; // 返回时间字符串 

SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd”); 

Calendar c = Calendar.getInstance(); // 当时的日期和时间 

int year = c.get(Calendar.YEAR); // 当前年份 

int month = c.get(Calendar.MONTH)+1 ;// 获取当前月份 

int day = c.get(Calendar.DAY_OF_MONTH);//当前的天数 

int maximum = c.getActualMaximum(Calendar.DAY_OF_MONTH);// 当月最大天数 

// 获取20的范围 要判断今天和当月最大天数 

for (int i = 0; i < lenght; i++) { 

MDAY = day + i; 

if (maximum-MDAY>=0){ //当月还有lenght天 

c.set(Calendar.DAY_OF_MONTH, MDAY); 

tday = df.format(c.getTime()); 

}else { //当月没有lenght天 

c.set(Calendar.YEAR,year); 

c.set(Calendar.MONTH,month-1);// 设置月份 防止时间错乱 

c.set(Calendar.DAY_OF_MONTH, day+i); 

tday = df.format(c.getTime()); 

time.add(tday); 

return time; 

你可能感兴趣的:(java 获取一个时间段 如最近20天的时间列表)