獲取當前時間的前幾個月的星期起始結束時間
阿新 • • 發佈:2018-05-22
pan temp turn RR 每天 () === for println
每天學習一點點 編程PDF電子書、視頻教程免費下載:
http://www.shitanlife.com/code
實現的效果打印出來如下:
第4月第1周----------2018-4-2===2018-4-8 第4月第2周----------2018-4-9===2018-4-15 第4月第3周----------2018-4-16===2018-4-22 第4月第4周----------2018-4-23===2018-4-29 第4月第5周----------2018-4-30===2018-5-6 第5月第1周----------2018-5-7===2018-5-13 第5月第2周----------2018-5-14===2018-5-20
工具類代碼:
@Service public class ToolsService { /** * get Calendar of given year * @param year * @return */ private Calendar getCalendarFormYear(int year){ Calendar cal = Calendar.getInstance(); cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); cal.set(Calendar.YEAR, year);return cal; } /** * get start date of given week no of a year * @param year * @param weekNo * @return */ public String getStartDayOfWeekNo(int year,int weekNo){ Calendar cal = getCalendarFormYear(year); cal.set(Calendar.WEEK_OF_YEAR, weekNo);return cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" + cal.get(Calendar.DAY_OF_MONTH); } /** * get the end day of given week no of a year. * @param year * @param weekNo * @return */ public String getEndDayOfWeekNo(int year,int weekNo){ Calendar cal = getCalendarFormYear(year); cal.set(Calendar.WEEK_OF_YEAR, weekNo); cal.add(Calendar.DAY_OF_WEEK, 6); return cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" + cal.get(Calendar.DAY_OF_MONTH); } }
邏輯代碼:
// 獲取當前時間在今年的周數 Date todayDate = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setFirstDayOfWeek(Calendar.MONDAY); calendar.setTime(todayDate); int currentWeekIndex = calendar.get(Calendar.WEEK_OF_YEAR); int currentMonthIndex = calendar.get(Calendar.MONTH)+1; int currentYear = calendar.get(Calendar.YEAR); int monthWeekCount = 1; int tempMonth = 0; for(int i=currentWeekIndex-10; i<currentWeekIndex; i++) { if(i<1) { continue; } String weekStartTime = toolsService.getStartDayOfWeekNo(currentYear, i); int startMonth = Integer.parseInt(weekStartTime.split("-")[1]); if(startMonth < currentMonthIndex - 1) { continue; } if(tempMonth != startMonth) { tempMonth = startMonth; monthWeekCount = 1; } String weekEndTime = toolsService.getEndDayOfWeekNo(currentYear, i); System.out.println("第" + startMonth + "月第" + monthWeekCount +"周----------" +weekStartTime + "===" + weekEndTime); monthWeekCount ++; }
每天學習一點點 編程PDF電子書、視頻教程免費下載:
http://www.shitanlife.com/code
獲取當前時間的前幾個月的星期起始結束時間