001 package videoautomat; 002 import java.util.Date; 003 004 import sale.Shop; 005 import data.NumberValue; 006 import data.ooimpl.StockItemImpl; 007 /** 008 * This class implements a StockItem, representing a rented video, including the <code>Date</code> when it was rented 009 */ 010 public class VideoCassette extends StockItemImpl { 011 /* 012 * The time this video was rented as long 013 */ 014 private long rentTime; 015 016 /** 017 * Constructs a new VideoCassette with the given name and the current time as renting time 018 * 019 * @param key 020 * the name of the video 021 */ 022 public VideoCassette(String key) { 023 super(key); 024 rentTime = ((Date) Shop.getTheShop().getTimer().getTime()).getTime(); 025 } 026 /** 027 * @return the days this video is already rented, in the case of 0 days it returns 1. 028 */ 029 public int getDays() { 030 long l = ((Date) Shop.getTheShop().getTimer().getTime()).getTime() - rentTime; 031 l /= 86400000; 032 if(l==0) return 1; 033 return (int) Math.ceil(l); 034 } 035 036 /** 037 * @return the cost for this video from the day of renting to the current <code>Date</code> 038 */ 039 public NumberValue getCost() { 040 return (NumberValue) MainClass.RENT_VALUE_DAY.multiply(getDays()); 041 } 042 }