- //获取当前时间 如果****-01-01不是周一从第一个周一开始计算
//设置每周的第一天为周一 cal.setFirstDayOfWeek(Calendar.MONDAY); //设置每周从周一开始 cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //设置每周最少为7天 cal.setMinimalDaysInFirstWeek(7); // 设置年度为指定的年 cal.set(Calendar.YEAR, cal.get(cal.YEAR)); //设置判断时间 cal.setTime(new Date()); //根据情况返回日期为当前第几个周 return cal.get(Calendar.WEEK_OF_YEAR);
//获取当前周的所有日期cal.set(Calendar.WEEK_OF_YEAR, week); while (cal.get(Calendar.DAY_OF_WEEK) != FIRST_DAY) { cal.add(Calendar.DATE, -1); } for (int i = 0; i < 7; i++) { list.add(cal.getTime().getTime()); cal.add(Calendar.DATE, 1); }
//区别第一种如果****-01-01不是周一的时候回从去年的最后一个周一开始计算SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Calendar cal = Calendar.getInstance(); System.out.println(cal.get(Calendar.WEEK_OF_YEAR)); cal.set(Calendar.WEEK_OF_YEAR, 52); while (cal.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) { cal.add(Calendar.DATE, -1); } for (int i = 0; i < 7; i++) { System.out.println(sdf.format(cal.getTime())); cal.add(Calendar.DATE, 1); }
//计算某月的开始时间和结束时间Calendar cal = Calendar.getInstance(); cal.set(Calendar.MONTH, 月份); cal.set(Calendar.DAY_OF_MONTH, 1); System.out.println(sdf.format(cal.getTime())); cal.add(Calendar.DAY_OF_MONTH, -1); Date lastDate = cal.getTime(); cal.set(Calendar.DAY_OF_MONTH, 1); Date firstDate = cal.getTime(); System.out.println(sdf.format(lastDate)+""+sdf.format(firstDate));
//计算某月所有日期list.add(sdf.format(dBegin)); Calendar calBegin = Calendar.getInstance(); // 使用给定的 Date 设置此 Calendar 的时间 calBegin.setTime(dBegin); Calendar calEnd = Calendar.getInstance(); // 使用给定的 Date 设置此 Calendar 的时间 calEnd.setTime(dEnd); // 测试此日期是否在指定日期之后 while (dEnd.after(calBegin.getTime())) { // 根据日历的规则,为给定的日历字段添加或减去指定的时间量 calBegin.add(Calendar.DAY_OF_MONTH, 1); list.add(sdf.format(calBegin.getTime())); }
/** * 得到本周周一 * * @return yyyy-MM-dd */ public static String getMondayOfThisWeek() { Calendar c = Calendar.getInstance(); int dayofweek = c.get(Calendar.DAY_OF_WEEK) - 1; if (dayofweek == 0) dayofweek = 7; c.add(Calendar.DATE, -dayofweek + 1); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(c.getTime()); } /** * 得到本周周日 * * @return yyyy-MM-dd */ public static String getSundayOfThisWeek() { Calendar c = Calendar.getInstance(); int dayofweek = c.get(Calendar.DAY_OF_WEEK) - 1; if (dayofweek == 0) dayofweek = 7; c.add(Calendar.DATE, -dayofweek + 7); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(c.getTime()); }
//当前日期加几天private String addDate(String date,int day){ try { Date od=sdf.parse(date); Date nd=addDete(od, day); return sdf.format(nd); } catch (ParseException e) { e.printStackTrace(); } return ""; } public static Date addDete(Date d,long day) throws ParseException { long time = d.getTime(); day = day*24*60*60*1000; time+=day; return new Date(time); }
//两日期相减得到之间天数(是String格式)public static int daysBetween(String smdate,String bdate) throws ParseException{ Calendar cal = Calendar.getInstance(); cal.setTime(sdf.parse(smdate)); long time1 = cal.getTimeInMillis(); cal.setTime(sdf.parse(bdate)); long time2 = cal.getTimeInMillis(); long between_days=(time2-time1)/(1000*3600*24); return Integer.parseInt(String.valueOf(between_days)); }