根據指定日期獲取該日期所在周的所有日期
阿新 • • 發佈:2018-11-11
一.需求
根據指定日期獲取該日期所在周的所有日期
二.程式碼實現
package com.function.util; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class WeekUtil { /** * 根據指定日期,獲取當前日期所在周的所有日期 * @param date * @return */ public static Week getWeek(Date date){ //s1.設定時間格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); //s2.設定要計算的時間 cal.setTime(date); //s3.判斷要計算的日期是否是週日,如果是則減一天計算週六的,否則會出問題,計算到下一週去了 //s4.獲得當前日期是一個星期的第幾天 int dayWeek = cal.get(Calendar.DAY_OF_WEEK); //s5.判斷是不是一個星期的第一天 if (1 == dayWeek) { //s6.如果是一個星期的第一天,則減去一天 cal.add(Calendar.DAY_OF_MONTH, -1); } //s7.設定一個星期的第一天,按中國的習慣一個星期的第一天是星期一 cal.setFirstDayOfWeek(Calendar.MONDAY); //s8.獲得當前日期是一個星期的第幾天 int day = cal.get(Calendar.DAY_OF_WEEK); //s9.根據日曆的規則,給當前日期減去星期幾與一個星期第一天的差值 cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day); //s10.獲取星期一 String monday = sdf.format(cal.getTime()); //s11.獲取星期二 cal.add(Calendar.DATE, 1); String tuesday = sdf.format(cal.getTime()); //s12.獲取星期三 cal.add(Calendar.DATE, 1); String wednesday = sdf.format(cal.getTime()); //s13.獲取星期四 cal.add(Calendar.DATE, 1); String thursday = sdf.format(cal.getTime()); //s14.獲取星期五 cal.add(Calendar.DATE, 1); String friday = sdf.format(cal.getTime()); //s15.獲取星期六 cal.add(Calendar.DATE, 1); String saturday = sdf.format(cal.getTime()); //s17.獲取星期日 cal.add(Calendar.DATE, 1); String sunday = sdf.format(cal.getTime()); Week week = new Week(); week.setMonday(monday); week.setTuesday(tuesday); week.setWednesday(wednesday); week.setThursday(thursday); week.setFriday(friday); week.setSaturday(saturday); week.setSunday(sunday); return week; } /** * 獲取指定日期所在周的所有日期 * @param date * @return */ public static List<String> getWeekDays(Date date){ List<String> weekDayList = new ArrayList<String>(); //s1.設定時間格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); //s2.設定要計算的時間 cal.setTime(date); //s3.判斷要計算的日期是否是週日,如果是則減一天計算週六的,否則會出問題,計算到下一週去了 //s4.獲得當前日期是一個星期的第幾天 int dayWeek = cal.get(Calendar.DAY_OF_WEEK); //s5.判斷是不是一個星期的第一天 if (1 == dayWeek) { //s6.如果是一個星期的第一天,則減去一天 cal.add(Calendar.DAY_OF_MONTH, -1); } //s7.設定一個星期的第一天,按中國的習慣一個星期的第一天是星期一 cal.setFirstDayOfWeek(Calendar.MONDAY); //s8.獲得當前日期是一個星期的第幾天 int day = cal.get(Calendar.DAY_OF_WEEK); //s9.根據日曆的規則,給當前日期減去星期幾與一個星期第一天的差值 cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day); //s10.獲取星期一 String monday = sdf.format(cal.getTime()); //s11.獲取星期二 cal.add(Calendar.DATE, 1); String tuesday = sdf.format(cal.getTime()); //s12.獲取星期三 cal.add(Calendar.DATE, 1); String wednesday = sdf.format(cal.getTime()); //s13.獲取星期四 cal.add(Calendar.DATE, 1); String thursday = sdf.format(cal.getTime()); //s14.獲取星期五 cal.add(Calendar.DATE, 1); String friday = sdf.format(cal.getTime()); //s15.獲取星期六 cal.add(Calendar.DATE, 1); String saturday = sdf.format(cal.getTime()); //s16.獲取星期日 cal.add(Calendar.DATE, 1); String sunday = sdf.format(cal.getTime()); weekDayList.add(monday); weekDayList.add(tuesday); weekDayList.add(wednesday); weekDayList.add(thursday); weekDayList.add(friday); weekDayList.add(saturday); weekDayList.add(sunday); return weekDayList; } public static void main(String[] args) { System.out.println("===================s1:指定日期所在周的日期====================="); Week week = getWeek(new Date()); System.out.println("所在周星期一的日期:" + week.getMonday()); System.out.println("所在周星期二的日期:" + week.getTuesday()); System.out.println("所在周星期三的日期:" + week.getWednesday()); System.out.println("所在周星期四的日期:" + week.getThursday()); System.out.println("所在周星期五的日期:" + week.getFriday()); System.out.println("所在周星期六的日期:" + week.getSaturday()); System.out.println("所在周星期日的日期:" + week.getSunday()); System.out.println("===================s2:指定日期所在周的所有日期====================="); List<String> weekDayList = getWeekDays(new Date()); for(String weekDay : weekDayList) { System.out.println("日期:" + weekDay); } } }
實體類
package com.function.util; public class Week{ /** * 星期一 */ private String monday; /** * 星期二 */ private String tuesday; /** * 星期三 */ private String wednesday; /** * 星期四 */ private String thursday; /** * 星期五 */ private String friday; /** * 星期六 */ private String saturday; /** * 星期日 */ private String sunday; public Week() { super(); } public Week(String monday, String tuesday, String wednesday, String thursday, String friday, String saturday, String sunday) { super(); this.monday = monday; this.tuesday = tuesday; this.wednesday = wednesday; this.thursday = thursday; this.friday = friday; this.saturday = saturday; this.sunday = sunday; } public String getMonday() { return monday; } public void setMonday(String monday) { this.monday = monday; } public String getTuesday() { return tuesday; } public void setTuesday(String tuesday) { this.tuesday = tuesday; } public String getWednesday() { return wednesday; } public void setWednesday(String wednesday) { this.wednesday = wednesday; } public String getThursday() { return thursday; } public void setThursday(String thursday) { this.thursday = thursday; } public String getFriday() { return friday; } public void setFriday(String friday) { this.friday = friday; } public String getSaturday() { return saturday; } public void setSaturday(String saturday) { this.saturday = saturday; } public String getSunday() { return sunday; } public void setSunday(String sunday) { this.sunday = sunday; } }