我想循環遍歷給定年份或當年的所有月份,並獲取每個月的第一個和最後一個日期。例如, 。本年是2017年和10月份。所以我想從2017年10月到2017年12月,取回每個月的第一個和最後一個日期,比如十月第一個日期是2017-10-01,最後一個日期是2017-10-31。如何循環瀏覽當年的每個月並獲取每個月的第一個和最後一個日期
回答
使用日曆(在所有的Java版本有效):
Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH);
int year = cal.get(Calendar.YEAR);
cal.clear();
cal.set(Calendar.YEAR, year);
for (int currentMonth = month; currentMonth < 12; currentMonth++) {
cal.set(Calendar.MONTH, currentMonth);
//first day :
cal.set(Calendar.DAY_OF_MONTH, 1);
Date firstDay = cal.getTime();
System.out.println("firstDay=" + firstDay);
//last day
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
Date lastDay = cal.getTime();
System.out.println("lastDay=" + lastDay);
}
通過使用新的Java 8日期/時間API:
LocalDate date = LocalDate.now();
int month = date.getMonthValue();
for (int currentMonth = month; currentMonth <= 12; currentMonth++) {
date = date.withMonth(currentMonth);
//start of month :
LocalDate firstDay = date.withDayOfMonth(1);
System.out.println("firstDay=" + firstDay);
//end of month
LocalDate lastDay = date.with(TemporalAdjusters.lastDayOfMonth());
System.out.println("lastDay=" + lastDay);
}
非常感謝你 –
好的答案。 (月份:EnumSet.range(today.getMonth(this.getMonth())代替'for'循環使用'Month'枚舉與'EnumSet','YearMonth'而不是'TemporalAdjuster':' ),Month.DECEMBER))'請參閱示例[在IdeOne.com上運行代碼](https://www.ideone.com/G4BwY6) –
歡迎您編輯我的帖子:) – Tuco
- 1. 如何獲取每個月的第一個和最後一個月
- 2. 獲取每月的第一個和第三個星期一 - strtotime
- 3. for循環一年中每個月
- 4. 如何使用當前月份和年份在scala上獲取第一個日期和最後一個日期
- 5. 從一天中獲取一年中每個月的日期
- 6. 如何獲得每個月的最短日期爲六個月?
- 7. 獲取指定日期的月份的第一個和最後一個日期
- 8. 傳遞日期並獲得該月的第一個和最後一個日期?
- 9. 獲取每個項目的第一個和最後一個記錄月
- 10. 設置10個月的第一個和最後一個日期
- 11. 如何在甲骨文2013年的每個月的每個月的最後一個星期四?
- 12. MySQL從日期列中獲取每個月的最後日期
- 13. 在MySQL中獲取下個月的第一個和最後一個日期
- 14. 在一個月內獲取第一個和最後一個日期
- 15. 獲取一個月的每個第二個星期二的日期
- 16. 如何選擇每個月的每月最大日期行
- 17. 如何獲得「每個月的第一個星期四」的DatePeriod?
- 18. 如何獲取每月的第一個日期和最後一個日期,只要我在jQuery UI中更改月份/年份datepicker
- 19. Javascript:查找兩個日期之間每個月的第一個和最後一個日期?
- 20. java獲取給定月份和給定年份的第一個日期和最後一個日期
- 21. 每個月的第一天
- 22. 最簡單的方法來獲取與JodaTime每年的每個月的第一天和最後一天
- 23. 每月獲得最後一個記錄
- 24. 日期篩選不適用於每月的第一個月
- 25. 獲取月份的第一個星期一和最後一個星期日,穿過月份邊界
- 26. 如何獲取上個月的第一個日期和最後一個日期? (Java)
- 27. 如何在一個月內找到第一個和最後一個日期
- 28. MySQL獲取一個月的每一天的日期的行數
- 29. 獲取MySQL中每個月的最後一個記錄....?
- 30. Cron作業運行每個月的每週的第一個或最後一個選擇日期
與編程工作,解釋你的問題 –
提示:如果你能可能使用'java.time',這比使用java.util.Calendar'好多了。 –
[獲得給定字符串日期中的月份的最後一天]的可能重複(https://stackoverflow.com/questions/13624442/getting-last-day-of-the-mon-in-given-string-date) –