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; 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容