计算指定日期的上周周一到周五日期:
1:先获取当前日期与本周日期之间相差的天数
2:获取本周周日的日期
3:根据本周周日的日期获取上周周日的日期
根据上周周日的日期依次获取周一到周五的日期
import java.sql.Date; import java.text.SimpleDateFormat; import java.util.Calendar; public class 日期计算 { /** * * @param args * 1:获取当前日期与本周日所相差的天数 * date yyyy-mm-dd */ public static int dayBetweenSunday(String strDate) { Calendar calendar=Calendar.getInstance(); if(strDate!=null) { Date date=Date.valueOf(strDate); calendar.setTime(date); System.out.println(calendar.getTime()); int nowWeek=calendar.get(calendar.DAY_OF_WEEK); // System.out.println("当前日期为星期:"+(nowWeek+6)%7); System.out.println("nowWeek="+nowWeek); return 7-nowWeek+1; } else { System.out.println("所输入的日期不能够为空"); return -1; } } public static java.util.Date getSunDay(String strDate) { // 获取当前系统时间和周日之间的日期差 int days=dayBetweenSunday(strDate); System.out.println("相差的天数为:"+days); Date date=Date.valueOf(strDate); Calendar calendar=Calendar.getInstance(); // 将当前日期对象设置到日历对象当中去 calendar.setTime(date); // 当前日期加上指定的天数之后变为周日 calendar.add(calendar.DAY_OF_WEEK,days); // 获取重新进行设定的日期对象 java.util.Date resDate=calendar.getTime(); /** * 将当前所重新设定的日期对象转变为自定格式的字符串对象将之进行输出操作 */ SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日"); String strDate1=simpleDateFormat.format(resDate); System.out.println("本周日的日期为:"+strDate1); System.out.println("重新设定的时间为:"+calendar.getTime()); return resDate; /*switch (calendar.get(calendar.DAY_OF_WEEK)) { case 1: System.out.println("今天是星期日"); break; case 2: System.out.println("今天是星期一"); break; case 3: System.out.println("今天是星期二"); break; case 4: System.out.println("今天是星期三"); break; case 5: System.out.println("今天是星期四"); break; case 6: System.out.println("今天是星期五"); break; case 7: System.out.println("今天是星期六"); break; default: break; } return 0; */ } public static void getLastWeekDays(String strDate) { // 获取当前日期对象当中本周日的日期值 java.util.Date date=getSunDay(strDate); Calendar calendar=Calendar.getInstance(); calendar.setTime(date); calendar.add(calendar.DAY_OF_MONTH, -7); // 对日历对象当中重新进行设定过的日期对象进行格式化的输出操作 SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日"); System.out.println("上周日的日期为:"+simpleDateFormat.format(calendar.getTime())); String[] days=new String[5]; // 在当前周日的基础上-2获得周五的日期对象然后将之存放到数组对象当中去 calendar.add(calendar.DAY_OF_WEEK, -2); days[4]=simpleDateFormat.format(calendar.getTime()); for(int i=3;i>=0;i--) { calendar.add(calendar.DAY_OF_WEEK, -1); days[i]=simpleDateFormat.format(calendar.getTime()); } System.out.println("上周周一到周五的日期为:"); for (String string : days) { System.out.println(string); } } public static void main(String[] args) { // TODO Auto-generated method stub /*int day=dayBetweenSunday("2018-06-16"); System.out.println("当前日期与本周日期相差的天数为:"+day); java.util.Date date=getSunDay("2018-06-15"); System.out.println("本周日的日期为:"+day);*/ getLastWeekDays("2018-06-13"); } }