Java统计年月日的数据

伪代码
controller层

@Autowired
private MonthlyStatistics monthlyStatistics;

@RequestMapping("/getLoanSlipReport")
public ResultBody getLoanSlipReport(){
	Map<String,Object> map = new HashMap<>();
	List<String> months = new ArrayList();
	//获取日历对象,模拟的就是当前时间
	Calendar calender = Calendar.getInstance();
	//获得当前时间往后推12个月
	calendar.add(Calendar.MONTH,-12);
	//计算过去一年的12个月
	for (int i = 0;i < 12; i++) {
		//获得过去一年往后推一个月日期
		calendar.add(Calendar.MONTH,1);
		Date date = calendar.getTime();
		months.add(new SimpleDateFormat("yyyy-MM").format(date));
	}
	map.put("months",months);
	//获取每月查询出的统计数
	List<Integer> count= monthlyStatistics.findCount(months);
	map.put("count",count);
	return ResultBody.success(map);
}

service层

public interface MonthlyStatisticsService {
/**
     * 根据月份统计已受理贷款总数
     * @param months
     * @return
     */
    List<Integer> findCount(List<String> months);
}

@Service
public class MonthlyStatisticsServiceImpl implements MonthlyStatisticsService {
 List<Integer> acceptedCount = new ArrayList<>();
        for (String month : months) {
			//这个对应的是我数据库的时间格式
            String startTime= month + "-1 00:00:01";
            String endTime= month + "-31 23:59:59";
            Integer count = loansBillMapper.findCount(startTime, endTime);
            acceptedCount.add(count);
        }
        return acceptedCount;
}

mapper

Integer findCount(@Param("start")String startTime, @Param("end")String endTime);

<!--统计每月的数据-->
    <select id="findCount" parameterType="string" resultType="int">
        select count(id) from table where createTime &gt;=#{start} AND createTime &lt;= #{end}
    </select>

Calendar.MONTH 对应的是月 有相对应的年和日,反推就行了

emmm…


版权声明:本文为m0_53623125原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。