public class Calculator {
       private double origDistance;
       private double newDistance;
       private int origHours;
       private int origMinutes;
       private int origSeconds;



       public void setOrigDistance(double distance) {
              origDistance = distance;
       }


       public void setOrigTime(int hours, int minutes, int seconds) {
              origHours = hours;
              origMinutes = minutes;
              origSeconds = seconds;
       }
 
       public void setNewDistance(double distance) {
              newDistance = distance;
       }
 
       public String computeNewTime() {
              int origTimeSeconds = origHours*3600 + origMinutes*60 + origSeconds;
              int newTimeSeconds = (int)(origTimeSeconds*(newDistance/origDistance)*Math.pow(1.05, Math.log(newDistance/origDistance)/Math.log(2)));
 
              int newHours = newTimeSeconds/3600;
              int newMinutes = (newTimeSeconds % 3600)/60;
              int newSeconds = newTimeSeconds - newHours*3600 - newMinutes*60;
 
              String returnString = newHours + ":";
              if (newMinutes < 10) {
                     returnString = returnString + "0";
              }
              returnString = returnString + newMinutes + ":";
              if (newSeconds < 10) {
                     returnString = returnString + "0";
              }
              returnString = returnString + newSeconds;
 
              return returnString;
       }
}
