/** * Stores travel cost (total time * income) in files. * * @param income * @param timePlan * @param csvWriter */ public void storeTravelCost(BigDecimal income, TimePlan timePlan, CSVWriter csvWriter) { final int workHoursPerWeek = 35; final int minutesPerHour = 60; final int totalMinutes = workHoursPerWeek * minutesPerHour; double totalTime = timePlan.getDriveTime() + timePlan.getWaitTime() + timePlan.getWalkTime() + timePlan.getTransitTime() + timePlan.getOtherTime(); BigDecimal travelCost = income .multiply(new BigDecimal(totalTime)) .divide(new BigDecimal(totalMinutes), 3, RoundingMode.HALF_UP); String[] entries = { String.valueOf(timePlan.getHhold()), String.valueOf(timePlan.getPerson()), String.valueOf(timePlan.getTrip()), String.valueOf(timePlan.getPurpose()), String.valueOf(timePlan.getMode()), String.valueOf(totalTime), String.valueOf(income), String.valueOf(travelCost) }; csvWriter.writeNext(entries); }