java一个月日历

2020-12-25 11:45:18 浏览数 (1)

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

0 人点赞