Calendarを使用して、過去1年間の毎週月曜日と日曜日のタイムスタンプと日付を取得します.
2904 ワード
private Calendar calendar;
private SimpleDateFormat simpleDateFormat;
private void getWeekTime() {
simpleDateFormat = new SimpleDateFormat("yyyy MM dd ");
timeList.clear();
//
int currentYear = calendar.get(Calendar.YEAR);
int currentMonth = calendar.get(Calendar.MONTH);
//
calendar.set(Calendar.MONTH, currentMonth);
calendar.set(Calendar.YEAR, currentYear);
// 2 ,
calendar.set(Calendar.DAY_OF_WEEK, 2);
for (int i = 0; i < 52; i++) {
// ( , , ),
int year1 = calendar.get(Calendar.YEAR);
int month1 = calendar.get(Calendar.MONTH) + 1;
int dayWeekStart = calendar.get(Calendar.DAY_OF_MONTH);
//
String dayStart;
// , , / / , , /
if (year1 != currentYear) {
dayStart = year1 + "/" + month1 + "/" + dayWeekStart;
} else {
dayStart = month1 + "/" + dayWeekStart;
}
// ,
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;
// , “ ”, “ ”
if (i == 0) {
title = " ";
} else if (i == 1) {
title = " ";
} else {
title = dayStart + "-" + dayEnd;
}
WeekTime weekTime = new WeekTime(date.getTime(),
// 1513526400,
date.getTime() + 1513526400,
String.valueOf(year2),
String.valueOf(month2),
title);
timeList.add(weekTime);
// , 13 , ,
calendar.add(Calendar.DATE, -13);
}
}
コードは簡略化されていません.主に
calendar.add(Calendar.DATE, num);
という方法は現在の時間を推移させることができる.