/**
  TimeCalcBetter.java
  Craig Persiko
  CS 111A Solution to Homework 4
  Calculate the number of days, hours, and minutes 
  in a given number of seconds.

  Modified version of program taken from
  Tony Gaddis' Starting Out with Java,
  from Control Structures to Objects
  Chapter 3, Programming Challenge 6: Time Calculator
*/

import java.util.Scanner;

public class TimeCalcBetter
{
  public static void main(String[] args)
  {
    Scanner scan = new Scanner (System.in);

    double seconds; // The number of seconds
    boolean outputShown = false;

    // Get the number of seconds.
    System.out.println("Enter the number of seconds");
    seconds = scan.nextDouble();

    System.out.println("That equals:");

    // Display the number of days, if any.
    if (seconds >= 86400)
    {
      // cast seconds to an int so we get integer division: whole number of days
      System.out.print(((int)seconds / 86400) + " days ");
      // remove full days from seconds, so it represents a portion of a day
      seconds %= 86400;
      outputShown = true;
    }

    // Display the number of hours, if any.
    if (seconds >= 3600)
    {
      int numHours = (int)seconds / 3600;
      System.out.print(numHours + " hours ");
      seconds = seconds - (3600 * numHours);  // seconds %= 3600;
      outputShown = true;
    }

    // Display the number of minutes, if any.
    if (seconds >= 60)
    {
      System.out.print(((int)seconds / 60) + " minutes ");
      seconds %= 60;
      outputShown = true;
    }

    if (seconds > 0 || !outputShown)
    {
      System.out.printf("%.2f seconds.", seconds);
      outputShown = true;
    }
          
    System.out.println();
  }
}

/* Sample Output:

[cpersiko@fog cs111a]$ javac TimeCalcBetter.java
[cpersiko@fog cs111a]$ java TimeCalcBetter
Enter the number of seconds
30
That equals:
30.0 seconds.
[cpersiko@fog cs111a]$ java TimeCalcBetter
Enter the number of seconds
90
That equals:
1 minutes 30.0 seconds.
[cpersiko@fog cs111a]$ java TimeCalcBetter
Enter the number of seconds
4000
That equals:
1 hours 6 minutes 40.0 seconds.
[cpersiko@fog cs111a]$ java TimeCalcBetter
Enter the number of seconds
90000
That equals:
1 days 1 hours 
[cpersiko@fog cs111a]$ java TimeCalcBetter
Enter the number of seconds
95000
That equals:
1 days 2 hours 23 minutes 20.0 seconds.
[cpersiko@fog cs111a]$ 

*/


syntax highlighted by Code2HTML, v. 0.9