class Main {
public static void main(String[] args) {
int articlesCount = 100;
int articlesInAPage = 10;
int pageBoxSize = 10;
int page = 1;
// 1 ~ 10
// 11 ~ 20
// 21 ~ 30
// 토탈 페이지 계산
int totalPage = (int)Math.ceil((double)articlesCount / articlesInAPage);
// 현재 페이지 계산
if ( page < 1 ) {
page = 1;
}
if ( page > totalPage ) {
page = totalPage;
}
// 현재 페이지 박스 시작, 끝 계산
int previousPageBoxesCount = (page - 1) / pageBoxSize;
int pageBoxStartPage = pageBoxSize * previousPageBoxesCount + 1;
int pageBoxEndPage = pageBoxStartPage + pageBoxSize - 1;
if ( pageBoxEndPage > totalPage ) {
pageBoxEndPage = totalPage;
}
// 이전버튼 페이지 계산
int pageBoxStartBeforePage = pageBoxStartPage - 1;
if ( pageBoxStartBeforePage < 1 ) {
pageBoxStartBeforePage = 1;
}
// 다음버튼 페이지 계산
int pageBoxEndAfterPage = pageBoxEndPage + 1;
if ( pageBoxEndAfterPage > totalPage ) {
pageBoxEndAfterPage = totalPage;
}
// 이전버튼 노출여부 계산
boolean pageBoxStartBeforeBtnNeedToShow = pageBoxStartBeforePage != pageBoxStartPage;
// 다음버튼 노출여부 계산
boolean pageBoxEndAfterBtnNeedToShow = pageBoxEndAfterPage != pageBoxEndPage;
System.out.printf("totalPage : %d\n", totalPage);
System.out.printf("page : %d\n", page);
System.out.printf("previousPageBoxesCount : %d\n", previousPageBoxesCount);
System.out.printf("pageBoxStartBeforePage : %d\n", pageBoxStartBeforePage);
System.out.printf("pageBoxStartPage : %d\n", pageBoxStartPage);
System.out.printf("pageBoxEndPage : %d\n", pageBoxEndPage);
System.out.printf("pageBoxEndAfterPage : %d\n", pageBoxEndAfterPage);
System.out.printf("pageBoxStartBeforeBtnNeedToShow : %b\n", pageBoxStartBeforeBtnNeedToShow);
System.out.printf("pageBoxEndAfterBtnNeedToShow : %b\n", pageBoxEndAfterBtnNeedToShow);
}
}
카테고리 없음