java 獲取一個(gè)時(shí)間段 如最近20天的時(shí)間列表

獲取一段時(shí)間的列表 如3/29 - 4/19 中間20天的時(shí)間 此方法不會(huì)出現(xiàn)日期錯(cuò)亂的情況?

/**?

* 獲取一段時(shí)間的列表?

*/?

public static List getPeroidTime () {?

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

int lenght = 20; // 獲取天數(shù)的長(zhǎng)度?

int MDAY = 0; // 天數(shù)標(biāo)志?

String tday =”“; // 返回時(shí)間字符串?

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

Calendar c = Calendar.getInstance(); // 當(dāng)時(shí)的日期和時(shí)間?

int year = c.get(Calendar.YEAR); // 當(dāng)前年份?

int month = c.get(Calendar.MONTH)+1 ;// 獲取當(dāng)前月份?

int day = c.get(Calendar.DAY_OF_MONTH);//當(dāng)前的天數(shù)?

int maximum = c.getActualMaximum(Calendar.DAY_OF_MONTH);// 當(dāng)月最大天數(shù)?

// 獲取20的范圍 要判斷今天和當(dāng)月最大天數(shù)?

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

MDAY = day + i;?

if (maximum-MDAY>=0){ //當(dāng)月還有l(wèi)enght天?

c.set(Calendar.DAY_OF_MONTH, MDAY);?

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

}else { //當(dāng)月沒(méi)有l(wèi)enght天?

c.set(Calendar.YEAR,year);?

c.set(Calendar.MONTH,month-1);// 設(shè)置月份 防止時(shí)間錯(cuò)亂?

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

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

}?

time.add(tday);?

}?

return time;?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容