项目须要,获取当天之后的30天。并提示星期几(周几),写了一个工具类
/** * 计算日期时间 * @author shijing * 2015年8月10日下午2:16:09 * @param date 传入的须要计算的日期 * @param timeWay 计算方式(年、月、周、日) * @param num 加减的数量,可传入负数变减法(XXX之后) * @return */ public static Date calculateDate(Date date ,int timeWay ,int num){ Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(timeWay, num); return cal.getTime(); } /** * 格式化计算好的日期,返回格式:yyyy-MM-dd * @author shijing * 2015年8月10日下午2:20:22 * @param date 传入的须要计算的日期 * @param timeWay 计算方式(年、月、周、日) * @param num 加减的数量,可传入负数变减法(XXX之后) * @return */ public static String calculateDateToString(Date date ,int timeWay ,int num){ return dateToString(calculateDate(date, timeWay, num), DATE_FORMAT_3); } /** * 获取指定日期是星期几 * @author shijing * 2015年8月10日下午2:44:44 * @param date 指定日期 * @return */ public static String getWeekOfDate(Date date) { String[] weekOfDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; Calendar calendar = Calendar.getInstance(); if(date != null){ calendar.setTime(date); } int w = calendar.get(Calendar.DAY_OF_WEEK) - 1; if (w < 0){ w = 0; } return weekOfDays[w]; }
上面的DATE_FORMT_3 事实上就是一个格式字符串: "yyyy-MM-dd",或者其它格式你自己定
调用类:
//生成当前日期和未来30天的日期集合 , i 从1 開始 Date currentDate = new Date(); List<DateBO> listDate = new ArrayList<DateBO>(); for (int i = 1; i <= DAYS; i++) { DateBO dateBo = new DateBO(); dateBo.setId(i); //获取计算之后的日期 dateBo.setScheduleDate(DateUtils.calculateDateToString(currentDate, Calendar.DATE, i)); //获取计算之后的日期的星期 dateBo.setWeekDay(DateUtils.getWeekOfDate(DateUtils.calculateDate(currentDate, Calendar.DATE, i))); listDate.add(dateBo); }
DateBO 里面的属性: id ,scheduleDate , weekDay 不多说了。自己复制自己測试吧