반응형
package studyGroup.june.three;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
public class LibraryServiceImpl implements LibraryService {
private Scanner scanner = new Scanner(System.in);
private final List<Library> libraryList = new ArrayList<>();
private final Date date = new Date();
private final SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
private final Calendar cal = Calendar.getInstance();
@Override
public void init() throws ParseException {
while (true) {
System.out.println("1. 책 입력");
System.out.println("2. 책 빌리기");
System.out.println("3. 책 반납하기");
System.out.println("4. 종료");
System.out.println("==============");
String input = scanner.next();
switch (input) {
case "1":
insertBook();
break;
case "2":
borrowBook();
break;
case "3":
returnBook();
break;
case "4":
quit();
break;
}
}
}
private void quit() {
System.out.println("시스템을 종료합니다.");
System.out.close();
}
@Override
public void insertBook() {
System.out.println("책이름");
String bName = scanner.next();
libraryList.add(new Library(bName, date, 0));
}
@Override
public void borrowBook() {
int index = 0;
System.out.println("== 책 빌리기 ==");
for (Library r : libraryList) {
System.out.println(index++ + "번째 " + r);
}
System.out.println("===========================");
System.out.println("몇번째 책을 빌려가시겠습니까?");
String input = scanner.next();
if (Integer.parseInt(input) >= libraryList.size()) {
System.out.println("없는 책입니다.");
System.out.println("메뉴로 돌아갑니다.");
} else {
if (libraryList.get(Integer.parseInt(input)).getState() == 1) {
System.out.println("대여하실 책: " + libraryList.get(Integer.parseInt(input)));
System.out.println("현재 도서 대여중입니다.");
System.out.println("메뉴로 돌아갑니다. ");
} else {
cal.setTime(libraryList.get(Integer.parseInt(input)).getDate());
cal.add(Calendar.DATE, 3);
String expectDate = df.format(cal.getTime());
System.out.println("대여하실 책: " + libraryList.get(Integer.parseInt(input)).getName());
System.out.println("반납 기한: " + expectDate);
libraryList.get(Integer.parseInt(input)).setDate(date);
libraryList.get(Integer.parseInt(input)).setState(1);
}
}
}
@Override
public void returnBook() throws ParseException {
int index = 0;
System.out.println("== 반납하기 ==");
for (Library r : libraryList) {
System.out.println(index++ + "번째 " + r);
}
System.out.println("반납하실 책은 몇번째 책입니까?");
String input = scanner.next();
if (Integer.parseInt(input) > libraryList.size()) {
System.out.println("없는 책입니다.");
System.out.println("메뉴로 돌아갑니다.");
} else {
if (libraryList.get(Integer.parseInt(input)).getState() == 1) {
System.out.println("반납하실 책: " + libraryList.get(Integer.parseInt(input)).getName());
System.out.println("반납일을 입력해주세요: 형식) 2021-06-14 ");
String returnDate = scanner.next();
Date inputDate = df.parse(returnDate);
cal.setTime(libraryList.get(Integer.parseInt(input)).getDate());
cal.add(Calendar.DATE, 3);
Date compareDate = cal.getTime();
if (inputDate.compareTo(compareDate) >= 0) {
System.out.println("반납 기간이 지났습니다");
System.out.println("벌금 100만원");
} else {
System.out.println("책을 반납합니다.");
}
libraryList.get(Integer.parseInt(input)).setDate(date);
libraryList.get(Integer.parseInt(input)).setState(0);
} else {
System.out.println("이미 도서 목록에 있습니다.");
System.out.println("다시 선택해주세요.");
System.out.println("메뉴로 돌아 갑니다.");
}
}
}
}
package studyGroup.june.three;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Library {
private String name;
private Date date = null;
private int state = 0;
public Library(String name, Date date, int state) {
this.name = name;
this.date = date;
this.state = state;
}
@Override
public String toString() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
return "Library{" +
"bName='" + name + '\'' +
", bDate=" + df.format(date) +
", state=" + state +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
}
package studyGroup.june.three;
import java.text.ParseException;
public interface LibraryService {
void init() throws ParseException;
void insertBook();
void borrowBook();
void returnBook() throws ParseException;
}
반응형
'Study > JAVA' 카테고리의 다른 글
[20210627] JAVA 스터디 (0) | 2021.06.28 |
---|---|
[20210620] JAVA 스터디 (0) | 2021.06.20 |
[20210613] JAVA 스터디 (0) | 2021.06.13 |
[20210612] 자바 기초 코딩 실습 (0) | 2021.06.12 |
[20210606] 자바 기초 코딩 실습 (0) | 2021.06.11 |
댓글