이제 함수를 보면
접속 날을 구한다
LocalDate today=LocalDate.now();
접속 날의 달의 마지막 날을 구한다
YearMonth yearMonth=YearMonth.from(today);
이름 표시 함수
showName(root, name);
월표 시 해주는 함수
getMonth(root, today);
월에 맞는 일자 표시해주는 함수
getDays(root, lastDay);
페이지 띄어주는 함수
showStage(root, "reservationPage");
showName(root, name)
#name이라는 라벨에
접속자 이름을 띄어준다
getMonth(root,today);
#month이라는 라벨에
접속 월을 띄어준다
getDays(Parent root,int lastDay)
얘가 좀 복잡하다
지날 일/에약이 다찬일은 선택할 수없게 해줘야 한다
28/29/30/31 끝 달이 며칠인지 알고 표시해 줘야 한다
총 일수 중
다 찬 날이나 지난날은 disable을 해준다
예를 들어 8/8일인데 8/6일 예약이 다 찼었든 안찼어든 disable 추가
for(int i=1;i<=lastDay;i++) {
Button button=(Button) root.lookup("#day"+i);
button.setText(Integer.toString(i));
if(checkFullDay(stringToTimestamp(month.getText(),i))||compareDate(stringToTimestamp(month.getText(), i),LocalDateTime.now())) {
System.out.println(i+"일은 예약이 다 찼거나 지난 요일입니다");
button.setDisable(true);
}
}
(checkFullDay(stringToTimestamp(month.getText(),i))
db에서 해당 월의 일을 검색해서
총개수가 설정해놓은 일일 총 예약량의 넘는지 안 넘는지 검사한다
if(array.size()>=maxOfDay) {
return true;
}
return false;
compareDate(stringToTimestamp(month.getText(), i),LocalDateTime.now())
현재 날짜와 비교해서 이전인지 검사한다
위 두 개의 검사 중 하나라도 해당되면 disable!
다시 돌아가서
checkCloseHour(root);
영업일의 예약 종료시간이 지나면
예약이 다 찼든 안찼든 선택 불가능하게 해 준다
각달의 마지막일 검사
if(lastDay==30) {
System.out.println("끝달이 31이 아닙니다");
Button button=(Button) root.lookup("#day31");
button.setText("x");
button.setDisable(true);
}
else if(lastDay==29||lastDay==28) {
System.out.println("끝달이 28/29입니다");
List<Button>buttons=new ArrayList<Button>();
for(int i=29;i<=31;i++) {
buttons.add((Button) root.lookup("#day"+i));
}
int temp=0;
if(lastDay==29) {
temp=1;
}
for(int i=temp;i<buttons.size();i++) {
Button button=buttons.get(i);
button.setText("x");
button.setDisable(true);
}
}
테스트
8/8일 기준
1.1~7일까지는 예약에 상관없이 disable완료
2.12일은 모두 예약이 다 찼으니 disable완료
3.8일 현재 오후 11시 47분 예약 개수에 상관없이
영업 종료시간(18시) 이후 이므로 disable완료
dao/dto
'javaFx > 달력' 카테고리의 다른 글
javaFx 예약시스템 예약하기! (0) | 2021.08.11 |
---|---|
javaFx 예약시스템 시간표시해주기! (0) | 2021.08.11 |
javaFx 예약시스템 날짜표시해주기!(3) with 요일에 맞추기 (0) | 2021.08.11 |
javaFx 예약시스템+날짜표시해주기(1) with sceneBuilder (0) | 2021.08.08 |
첫 팀프로젝트 (0) | 2021.08.08 |