package com.dsh.guns.core.support; /** * 分页工具类 * * @author xiaoleilu * */ public class PageKit { /** * 将页数和每页条目数转换为开始位置和结束位置
* 此方法用于不包括结束位置的分页方法
* 例如:
* 页码:1,每页10 -> [0, 10]
* 页码:2,每页10 -> [10, 20]
* 。。。
* * @param pageNo * 页码(从1计数) * @param countPerPage * 每页条目数 * @return 第一个数为开始位置,第二个数为结束位置 */ public static int[] transToStartEnd(int pageNo, int countPerPage) { if (pageNo < 1) { pageNo = 1; } if (countPerPage < 1) { countPerPage = 0; // LogKit.warn("Count per page [" + countPerPage + "] is not valid!"); } int start = (pageNo - 1) * countPerPage; int end = start + countPerPage; return new int[] { start, end }; } /** * 根据总数计算总页数 * * @param totalCount * 总数 * @param numPerPage * 每页数 * @return 总页数 */ public static int totalPage(int totalCount, int numPerPage) { if (numPerPage == 0) { return 0; } return totalCount % numPerPage == 0 ? (totalCount / numPerPage) : (totalCount / numPerPage + 1); } }