From 454e0ef3bd4db311df1a2a474010473566594482 Mon Sep 17 00:00:00 2001 From: stgctkm Date: Mon, 21 Aug 2023 17:31:20 +0900 Subject: [PATCH] =?UTF-8?q?=E6=96=99=E9=87=91=E3=83=A1=E3=82=BD=E3=83=83?= =?UTF-8?q?=E3=83=89=E3=81=AE=E6=8A=BD=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/video/domain/Customer.java | 39 +++++++++++++----------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/src/main/java/video/domain/Customer.java b/src/main/java/video/domain/Customer.java index 1c859cd..fd4af2f 100644 --- a/src/main/java/video/domain/Customer.java +++ b/src/main/java/video/domain/Customer.java @@ -27,23 +27,7 @@ public RentalResult rentalMovies() { int totalAmount = 0; int frequentRenterPoints = 0; for (Rental each : rentals) { - int thisAmount = 0; - // 一行ごとに金額を計算 - switch (each.getMovie().getPriceType()) { - case REGULAR: - thisAmount += 200; - if (each.getDaysRented() > 2) - thisAmount += (each.getDaysRented() - 2) * 150; - break; - case NEW_RELEASE: - thisAmount += each.getDaysRented() * 300; - break; - case CHILDREN: - thisAmount += 150; - if (each.getDaysRented() > 3) - thisAmount += (each.getDaysRented() - 3) * 150; - break; - } + int thisAmount = amount(each); // レンタルポイントを加算 frequentRenterPoints++; // 新作を二日以上借りた場合はボーナスポイント @@ -54,4 +38,25 @@ public RentalResult rentalMovies() { return new RentalResult(totalAmount, frequentRenterPoints); } + + private int amount(Rental each) { + int thisAmount = 0; + // 金額を計算 + switch (each.getMovie().getPriceType()) { + case REGULAR: + thisAmount += 200; + if (each.getDaysRented() > 2) + thisAmount += (each.getDaysRented() - 2) * 150; + break; + case NEW_RELEASE: + thisAmount += each.getDaysRented() * 300; + break; + case CHILDREN: + thisAmount += 150; + if (each.getDaysRented() > 3) + thisAmount += (each.getDaysRented() - 3) * 150; + break; + } + return thisAmount; + } } \ No newline at end of file