java根據日期獲取周幾和獲取某段時間內周幾的日期
阿新 • • 發佈:2018-11-15
整理兩個日期的方法。
根據日期獲取當天是周幾
/** * 根據日期獲取當天是周幾 * @param datetime 日期 * @return 周幾 */ public static String dateToWeek(String datetime) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; Calendar cal = Calendar.getInstance(); Date date; try { date = sdf.parse(datetime); cal.setTime(date); } catch (ParseException e) { e.printStackTrace(); } int w = cal.get(Calendar.DAY_OF_WEEK) - 1; return weekDays[w]; }
獲取某段時間內的週一(二等等)的日期
/** * 獲取某段時間內的週一(二等等)的日期 * @param dataBegin 開始日期 * @param dataEnd 結束日期 * @param weekDays 獲取周幾,1-6代表週一到週六。0代表週日 * @return 返回日期List */ public static List<String> getDayOfWeekWithinDateInterval(String dataBegin, String dataEnd, int weekDays) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); List<String> dateResult = new ArrayList<>(); Calendar cal = Calendar.getInstance(); String[] dateInterval = {dataBegin, dataEnd}; Date[] dates = new Date[dateInterval.length]; for (int i = 0; i < dateInterval.length; i++) { String[] ymd = dateInterval[i].split("[^\\d]+"); cal.set(Integer.parseInt(ymd[0]), Integer.parseInt(ymd[1]) - 1, Integer.parseInt(ymd[2])); dates[i] = cal.getTime(); } for (Date date = dates[0]; date.compareTo(dates[1]) <= 0; ) { cal.setTime(date); cal.add(Calendar.DATE, 1); date = cal.getTime(); if (cal.get(Calendar.DAY_OF_WEEK) - 1 == weekDays) { String format = sdf.format(date); dateResult.add(format); } } return dateResult; }