项目须要,获取当天之后的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 listDate = new ArrayList();
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 不多说了。自己复制自己測试吧