项目需要,获取当天之后的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 不多说了,自己复制自己测试吧