//BabySitter.java //04.08.02 //import utils.SavitchIn; //import utils.OutFmt; class BabySitter { public static void main(String[] args) { final double bf8rate = 3.50; final double bf12rate = 4.20; final double af12rate = 5.00; double sHour, sMinute, eHour, eMinute; double bf8hours, bf12hours, af12hours, minuteConvert; double totalMinutes; double totalHours; double bf8pay, bf12pay, af12pay; bf8hours = 0; bf12hours = 0; af12hours = 0; minuteConvert = 1/0.6; //Converts all values to minutes System.out.print("\nAt what HOUR did the baby-sitter start work? "); sHour = SavitchIn.readLineDouble(); if((sHour < 6)||(sHour > 11)){ System.out.println("That can't be the start hour..."); System.exit(0); } System.out.print("\nAt what MINUTE did the baby-sitter start work? "); sMinute = SavitchIn.readLineDouble(); if((sMinute < 0)||(sMinute > 60)){ System.out.println("Start minute must be between 0 and 60"); System.exit(1); } System.out.print("\nAt what HOUR did the baby-sitter finish work? "); eHour = SavitchIn.readLineDouble(); if(((eHour<9)&&(eHour>6))||((eHour<0)||(eHour>12))){ System.out.println("That can't be the end hour..."); System.exit(2); } System.out.print("\nAt what MINUTE did the baby-sitter finish work? "); eMinute = SavitchIn.readLineDouble(); if((eMinute < 0)||(eMinute > 60)){ System.out.println("End minute must be between 0 and 60"); System.exit(3); } if(eHour < 5){ eHour = eHour + 12; //Adjust for hours past midnight } sMinute = 60 - sMinute; //Calculate start minutes if(sMinute != 0){ sHour = sHour + 1; //Adjust start hour if there are minutes } totalHours = eHour - sHour; totalMinutes = ((eMinute + sMinute) + (totalHours * 60)); ///Calc before 8 hours if(sHour < 8){ bf8hours = ((8 - sHour)*60) + sMinute; }else{ if((sHour == 8)&&(sMinute > 0)){ bf8hours = sMinute; }else{ bf8hours = 0; } } ////Calc before 12 hours//////// if((sHour <= 8)&&(eHour >= 12)){ bf12hours = (4 * 60); }else{ if((sHour <=8)&&(eHour < 12)){ bf12hours = (60 * (8 - (12 - eHour)))+eMinute; }else{ if((sHour>8)&&(eHour >= 12)){ bf12hours = (60 * (12 - sHour)) + sMinute; }else{ if((sHour > 8)&&(eHour < 12)){ bf12hours = (60 * (eHour - sHour))+(sMinute + eMinute); }else{ bf12hours = 0; } } } } ////Calc after 12 hours/////// if((eHour == 12)&&(eMinute > 0)){ af12hours = eMinute; }else{ if(eHour <= 12){ af12hours = 0; }else{ if((sHour <=12)&&(eHour == 16)){ af12hours = (60 * 4); }else{ if((sHour <= 12)&&(eHour < 16)){ af12hours = (60 * (eHour - 12)) + eMinute; }else{ af12hours = 0; } } } } System.out.print("Total minutes worked: "); System.out.print(bf8hours + bf12hours + af12hours); System.out.print("\nReal time worked: "); System.out.print((bf8hours + bf12hours + af12hours)/60); System.out.println(); ///Convert minutes back to hours bf8hours = bf8hours/60; bf12hours = bf12hours/60; af12hours = af12hours/60; ///Calculate 3 pay rates bf8pay = bf8rate * bf8hours; bf12pay = bf12rate * bf12hours; af12pay = af12rate * af12hours; System.out.print("\nBefore 8pm hours pay: "); System.out.print(bf8pay); System.out.print("\nBefore 12am hours pay: "); System.out.print(bf12pay); System.out.print("\nAfter 12am hours pay: "); System.out.print(af12pay); System.out.print("\nTotal pay: "); OutFmt.setDecimalPlaces(2); System.out.println(OutFmt.fmt(bf8pay + bf12pay + af12pay)); System.out.println(); }//end main }//end class