private Calendar calendar;
private SimpleDateFormat simpleDateFormat;
private void getWeekTime() {
simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
timeList.clear();
//獲取當(dāng)前年月
int currentYear = calendar.get(Calendar.YEAR);
int currentMonth = calendar.get(Calendar.MONTH);
//設(shè)置時(shí)間
calendar.set(Calendar.MONTH, currentMonth);
calendar.set(Calendar.YEAR, currentYear);
//設(shè)置當(dāng)前為這周的第2天,默認(rèn)上周日為這周的第一天
calendar.set(Calendar.DAY_OF_WEEK, 2);
for (int i = 0; i < 52; i++) {
//獲取你設(shè)置的時(shí)間(年巫湘,月,日),這樣獲取的時(shí)間就是這周一的日期了
int year1 = calendar.get(Calendar.YEAR);
int month1 = calendar.get(Calendar.MONTH) + 1;
int dayWeekStart = calendar.get(Calendar.DAY_OF_MONTH);
//獲取每周周一的日期
String dayStart;
//判斷獲取的時(shí)間是否是本年卓起,不是本年的話(huà),就獲取年/月/日凹炸,是本年戏阅,就獲取月/日
if (year1 != currentYear) {
dayStart = year1 + "/" + month1 + "/" + dayWeekStart;
} else {
dayStart = month1 + "/" + dayWeekStart;
}
//獲取周一日期的字符串,為獲取其時(shí)間戳做準(zhǔn)備
String pattern = year1 + "年" + month1 + "月" + dayWeekStart + "日";
//將日期往后加6天啤它,也就是本周的周日
calendar.add(Calendar.DATE, 6);
//獲取本周周日的日期奕筐,有獲取一次年份舱痘,是為了避免一周不在同一年。
int year2 = calendar.get(Calendar.YEAR);
int month2 = calendar.get(Calendar.MONTH) + 1;
int dayWeekEnd = calendar.get(Calendar.DAY_OF_MONTH);
//獲取每周周一的日期
String dayEnd = "";
if (year2 != currentYear) {
dayEnd = year2 + "/" + month2 + "/" + dayWeekEnd;
} else {
dayEnd = month2 + "/" + dayWeekEnd;
}
Date date = new Date();
try {
date = simpleDateFormat.parse(pattern);
} catch (ParseException e) {
e.printStackTrace();
}
String title;
//如果是本周的話(huà)离赫,就返回“本周”芭逝,上周就返回“上周”
if (i == 0) {
title = "本周";
} else if (i == 1) {
title = "上周";
} else {
title = dayStart + "-" + dayEnd;
}
WeekTime weekTime = new WeekTime(date.getTime(),
//將周一的時(shí)間戳加1513526400,就是周末的時(shí)間戳了
date.getTime() + 1513526400,
String.valueOf(year2),
String.valueOf(month2),
title);
timeList.add(weekTime);
//當(dāng)前時(shí)間已經(jīng)是本周的周日笆怠,那么將時(shí)間往前推13天铝耻,就是上周一,進(jìn)入下一個(gè)循環(huán)
calendar.add(Calendar.DATE, -13);
}
}
代碼沒(méi)有簡(jiǎn)化蹬刷。主要是calendar.add(Calendar.DATE, num);
這個(gè)方法可以將當(dāng)前時(shí)間進(jìn)行推移瓢捉;