Help Closing this code import javatextNumberFormat import ja
Help Closing this code!
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Final {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double base = 0;
double rate = 0;
double overcharge = 1.10;
double excesscharge = 1.25;
double tier1 = 350;
double tier2 = 500;
double over = 0;
double excess = 0;
double total = 0;
System.out.println(\"\ Southwest Power & Light\ Billing Statement\ \");
// WElCOME
System.out.print(\"Please enter your name (Last, First) > \");
Scanner nameInput = new Scanner(System.in);
String name = nameInput.nextLine();
// DATE
SimpleDateFormat sdf = new SimpleDateFormat(\"MM/dd/yyyy\");
String bDate = null;
boolean valid = false;
while (valid == false) {
try {
Scanner scandate = new Scanner(System.in);
System.out.print(\"Meter reading date > \");
bDate = scandate.nextLine();
sdf.parse(bDate);
valid = true;
Scanner scandate2 = new Scanner(bDate);
scandate2.useDelimiter(\"/\");
// MONTH PRICES
int date = scandate2.nextInt();
if (date == 12 | date == 1 | date == 2)
rate = .10;
else if (date >= 3 && date < 6)
rate = .12;
else
rate = .15;
} catch (Exception error) {
System.out.println(\"Date entered is not valid try again!\");
}
}
Scanner sca = new Scanner(System.in);
String kwEntered = null;
boolean isValid = false;
while (isValid == false) {
try {
System.out.print(\"Electricity Used (KW) > \");
kwEntered = sca.nextLine();
Integer.parseInt(kwEntered);
isValid = true;
Date now = new Date();
System.out.println(\"Date Printed : \" + sdf.format(now));
System.out.println(\"Name: \" + name);
System.out.println(\"Meter reading date: \" + bDate);
System.out.println(\"Electricity Used (KW): \" + kwEntered);
Scanner sc1 = new Scanner(kwEntered);
int kwused = sc1.nextInt();
if (kwused >= 0 && kwused <= 350) {
base = kwused * rate;
over = 0;
excess = 0;
} else if (kwused > 350 && kwused <= 500) {
base = tier1 * rate;
over = (kwused - tier1) * (rate * overcharge);
excess = 0;
} else if (kwused > 500) {
base = tier1 * rate;
over = (tier2 - tier1) * (rate * overcharge);
excess = (kwused - tier2) * (rate * excesscharge);
}
} catch (Exception error) {
System.out.println(\"Invalid entry Please try again!\");
}
}
base = Math.round(base * 100) / 100.;
over = Math.round(over * 100) / 100.;
excess = Math.round(excess * 100) / 100.;
total = base + over + excess;
NumberFormat fmt = NumberFormat.getCurrencyInstance();
System.out.println(\"Baseline charge \" + fmt.format(base));
System.out.println(\"Over-baseline charge \" + fmt.format(over));
System.out.println(\"Excess charge \" + fmt.format(excess));
System.out.println(\"Total amount due: \" + fmt.format(total));
System.out.println(\"Calculate another bill (Y/N)?\");
System.out.println(\"Thank you for letting us serve you!\");
}
}
Solution
Final.java
import java.text.NumberFormat;//Package for number currecy
import java.text.SimpleDateFormat;//package for date
import java.util.Date;
import java.util.Scanner;//key board inputting package
public class Final {//main class
public static void main(String[] args) {//main method
Scanner sc = new Scanner(System.in);
double base = 0;//variable declaration and assignments
double rate = 0;
double overcharge = 1.10;
double excesscharge = 1.25;
double tier1 = 350;
double tier2 = 500;
double over = 0;
double excess = 0;
double total = 0;
String ch;
System.out.println(\"\ Southwest Power & Light\ Billing Statement\ \");
// WElCOME
do{//dowhile loop
System.out.print(\"Please enter your name (Last, First) > \");
Scanner nameInput = new Scanner(System.in);
String name = nameInput.nextLine();//key board inputting
// DATE
SimpleDateFormat sdf = new SimpleDateFormat(\"MM/dd/yyyy\");
String bDate = null;
boolean valid = false;
while (valid == false) {
try {
Scanner scandate = new Scanner(System.in);
System.out.print(\"Meter reading date > \");
bDate = scandate.nextLine();//key board inputting
sdf.parse(bDate);
valid = true;
Scanner scandate2 = new Scanner(bDate);
scandate2.useDelimiter(\"/\");
// MONTH PRICES
int date = scandate2.nextInt();//key board inputting
if (date == 12 | date == 1 | date == 2)
rate = 0.10;
else if (date >= 3 && date < 6)
rate = 0.12;
else
rate = 0.15;
} catch (Exception error) {
System.out.println(\"Date entered is not valid try again!\");
}
}
Scanner sca = new Scanner(System.in);
String kwEntered = null;
boolean isValid = false;
while (isValid == false) {
try {
System.out.print(\"Electricity Used (KW) > \");
kwEntered = sca.nextLine();
Integer.parseInt(kwEntered);
isValid = true;
Date now = new Date();
System.out.println(\"Date Printed : \" + sdf.format(now));
System.out.println(\"Name: \" + name);
System.out.println(\"Meter reading date: \" + bDate);
System.out.println(\"Electricity Used (KW): \" + kwEntered);
Scanner sc1 = new Scanner(kwEntered);
int kwused = sc1.nextInt();//key board inputting
if (kwused >= 0 && kwused <= 350) {
base = kwused * rate;
over = 0;
excess = 0;
} else if (kwused > 350 && kwused <= 500) {
base = tier1 * rate;
over = (kwused - tier1) * (rate * overcharge);
excess = 0;
} else if (kwused > 500) {
base = tier1 * rate;
over = (tier2 - tier1) * (rate * overcharge);
excess = (kwused - tier2) * (rate * excesscharge);
}
} catch (Exception error) {
System.out.println(\"Invalid entry Please try again!\");
}
}
//calculating charges
base = Math.round(base * 100) / 100;
over = Math.round(over * 100) / 100.;
excess = Math.round(excess * 100) / 100;
total = base + over + excess;
NumberFormat fmt = NumberFormat.getCurrencyInstance();//getting currency symbol instance
System.out.println(\"Baseline charge \" + fmt.format(base));
System.out.println(\"Over-baseline charge \" + fmt.format(over));
System.out.println(\"Excess charge \" + fmt.format(excess));
System.out.println(\"Total amount due: \" + fmt.format(total));
System.out.println(\"Calculate another bill (Y/N)?\");
ch=sc.next();
}while(ch.equalsIgnoreCase(\"Y\"));
System.out.println(\"Thank you for letting us serve you!\");
}
}
output
Southwest Power & Light
Billing Statement
Please enter your name (Last, First) > Chegg,Sters
Meter reading date > 13/02/2011
Electricity Used (KW) > 600
Date Printed : 10/14/2016
Name: Chegg,Sters
Meter reading date: 13/02/2011
Electricity Used (KW): 600
Baseline charge $52.00
Over-baseline charge $24.75
Excess charge $18.00
Total amount due: $94.75
Calculate another bill (Y/N)?
N
Thank you for letting us serve you!






