xuhy
2023-08-11 b659987d3e120cea0b94fdb01f1ab06260f61825
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.stylefeng.guns.core.support;
 
/**
 * 分页工具类
 * 
 * @author xiaoleilu
 * 
 */
public class PageKit {
 
    /**
     * 将页数和每页条目数转换为开始位置和结束位置<br>
     * 此方法用于不包括结束位置的分页方法<br>
     * 例如:<br>
     * 页码:1,每页10 -> [0, 10]<br>
     * 页码:2,每页10 -> [10, 20]<br>
     * 。。。<br>
     * 
     * @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);
    }
}