项目需要,获取当天之后的30天,并提示星期几(周几),写了一个工具类
代码语言:javascript复制/**
* 计算日期时间
* @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",或者其他格式你自己定
调用类:
代码语言:javascript复制 //生成当前日期和未来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 不多说了,自己复制自己测试吧