Java獲取兩個指定日期之間的所有月份

public static void main(String[] args) {
String y1 = "2016-02";// 開始時間
String y2 = "2019-12";// 結束時間

try {
Date startDate = new SimpleDateFormat("yyyy-MM").parse(y1);
Date endDate = new SimpleDateFormat("yyyy-MM").parse(y2);

Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);
// 獲取開始年份和開始月份
int startYear = calendar.get(Calendar.YEAR);
int startMonth = calendar.get(Calendar.MONTH);
// 獲取結束年份和結束月份
calendar.setTime(endDate);
int endYear = calendar.get(Calendar.YEAR);
int endMonth = calendar.get(Calendar.MONTH);
//
List<String> list = new ArrayList<String>();
for (int i = startYear; i <= endYear; i++) {
String date = "";
if (startYear == endYear) {
for (int j = startMonth; j <= endMonth; j++) {
if (j < 9) {
date = i + "-0" + (j + 1);
} else {
date = i + "-" + (j + 1);
}
list.add(date);
}

} else {
if (i == startYear) {
for (int j = startMonth; j < 12; j++) {
if (j < 9) {
date = i + "-0" + (j + 1);
} else {
date = i + "-" + (j + 1);
}
list.add(date);
}
} else if (i == endYear) {
for (int j = 0; j <= endMonth; j++) {
if (j < 9) {
date = i + "-0" + (j + 1);
} else {
date = i + "-" + (j + 1);
}
list.add(date);
}
} else {
for (int j = 0; j < 12; j++) {
if (j < 9) {
date = i + "-0" + (j + 1);
} else {
date = i + "-" + (j + 1);
}
list.add(date);
}
}

}

}

// 所有的月份已經準備好
//System.out.println(list);
for(int i = 0;i < list.size();i++){
System.out.println(list.get(i));
}

} catch (Exception e) {
e.printStackTrace();
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章