reghao пре 2 година
родитељ
комит
f5f9872114
1 измењених фајлова са 46 додато и 0 уклоњено
  1. 46 0
      jdk/src/main/java/cn/reghao/jutil/jdk/db/PageBound.java

+ 46 - 0
jdk/src/main/java/cn/reghao/jutil/jdk/db/PageBound.java

@@ -0,0 +1,46 @@
+package cn.reghao.jutil.jdk.db;
+
+/**
+ * @author reghao
+ * @date 2023-03-08 10:23:25
+ */
+public class PageBound {
+    private final int start;
+    private final int end;
+
+    private PageBound(int start, int end) {
+        this.start = start;
+        this.end = end;
+    }
+
+    public int getStart() {
+        return start;
+    }
+
+    public int getEnd() {
+        return end;
+    }
+
+    public static PageBound getPageBound(int pageNumber, int pageSize, int total) {
+        if (total == 0) {
+            return new PageBound(0, 0);
+        }
+
+        int totalPage = total/pageSize;
+        int mod = total%pageSize;
+        if (mod != 0) {
+            totalPage += 1;
+        }
+
+        int start, end;
+        if (pageNumber < totalPage) {
+            start = (pageNumber-1)*pageSize;
+            end = start + pageSize;
+        } else {
+            start = (totalPage-1)*pageSize;
+            end = total;
+        }
+
+        return new PageBound(start, end);
+    }
+}