Andrew - 2 months ago 12
Java Question

# Electricity/Energy Bill Calculator: Java

I am having issues figuring out exactly what is wrong with this little Electricity/Energy calculator used to calculate computer energy costs.

I'd appreciate any help.

Program:

``````import java.util.Scanner;

public class ElectricityCalculations {
public static void main (String [] args) {
Scanner scnr = new Scanner(System.in);
double usageHoursPerDay      = 0; // Hours computer is on per day
double usageDaysPerWeek      = 0; // Days computer is used per week
double usageWeeksPerYear     = 0; // Weeks computer is used per year
double wattsPerHour          = 0; // Watts used by computer per hour
final double COST_PER_KWH    = 0.145; // Prices of power per kilowatt hour
final double LBS_CO2_PER_KWH = 0.58815; // Pounds of CO2 generated per KWH
double usageHoursPerYear     = 0; // Amount of hours on per year
double usageWattHoursPerYear = 0; // Amount of watt hours consumed per year
double usageKWHPerYear       = 0; // Amount of KWH used in a year
double costPerYear           = 0; // Total cost per year
double lbsCO2PerYear         = 0; // Total amount of CO2 in pounds released per year

// Input Values
System.out.println("How many hours is your computer on per day?");
usageHoursPerDay  = scnr.nextDouble();
System.out.println("How many days per week is your computer used?");
usageDaysPerWeek  = scnr.nextDouble();
System.out.println("How many weeks per year is your computer used?");
usageWeeksPerYear = scnr.nextDouble();
System.out.println("How many watts per hour does your computer use? (Suggestive value for desktop: 100, laptop: 30).");
wattsPerHour      = scnr.nextDouble();

// Calculations
usageHoursPerYear     = usageHoursPerDay * 365;
usageWattHoursPerYear = wattsPerHour * 8760; // 8760 is the number of hours in a year
usageKWHPerYear       = usageWattHoursPerYear / 1000;
costPerYear           = usageKWHPerYear * COST_PER_KWH;
lbsCO2PerYear         = LBS_CO2_PER_KWH * usageKWHPerYear;

// Printing Energy Audits
System.out.println("Computer Energy Audit");
System.out.println("You use your computer for " + usageHoursPerYear + " hours per year.");
System.out.println("It will use " + usageWattHoursPerYear + " KWH/year.");
System.out.println("Whih will cost " + costPerYear + "\$/year for electricity.");
System.out.println("Generating that electricity will produce " + lbsCO2PerYear + " lbs of CO2 pollution.");

return;
}
}
``````

Inputs:

8 hours/day

5 days/week

50 weeks/year

100 watts/hour

My (wrong output):

Computer Energy Audit:

You use your computer for 2920.0 hours per year.

It will use 876000.0 KWH/year.

Whih will cost 127.02\$/year for electricity.

Generating that electricity will produce 515.2194 lbs of CO2 pollution.

Correct Output:

Computer Energy Audit:

You use your computer for 2000.0 hours per year.

It will use 200.0 KWH/year.

Which will cost 28.999999999999996 \$/year for electricity.

Generating that electricity will produce 117.63 lbs of CO2 pollution.

You take in the number of days per week and weeks per year as input, but forget to use them in your calculations. Also, instead of printing KWH, you are displaying the variable storing Watt Hours.

``````// Calculations
usageHoursPerYear     = usageHoursPerDay * usageDaysPerWeek * usageWeeksPerYear; //calculate based on time used, not 365 days in the year
usageWattHoursPerYear = wattsPerHour * usageHoursPerYear; //use variable from above line
usageKWHPerYear       = usageWattHoursPerYear / 1000;
costPerYear           = usageKWHPerYear * COST_PER_KWH;
lbsCO2PerYear         = LBS_CO2_PER_KWH * usageKWHPerYear;

// Printing Energy Audits
System.out.println("Computer Energy Audit");
System.out.println("You use your computer for " + usageHoursPerYear + " hours per year.");
System.out.println("It will use " + usageKWHPerYear + " KWH/year."); //changed to correct variable
System.out.println("Whih will cost " + costPerYear + "\$/year for electricity.");
System.out.println("Generating that electricity will produce " + lbsCO2PerYear + " lbs of CO2 pollution.");
``````
Source (Stackoverflow)