Write a program that prompts the user to enter an integer that represents an elapsed time in seconds and then displays it in the format “DD days HH hours MM minutes and SS seconds”. For example if the user enters the number 700005, the message “8 days 2 hours 26 minutes and 45 seconds” must be displayed.
Solution
As you may already know, there are 60 seconds in a minute, 3600 seconds in an hour, and 86400 seconds in a day.
Let’s try to analyze number 700005 using the first approach.
PHP
Days = 8  The number of days can be isolated if you divide the given integer by 86400 to get the integer quotient

Remaining seconds = 8805  The remaining seconds can be isolated if you divide the given integer by 86400 to get the integer remainder

Hours = 2  The number of hours can be isolated if you divide the remaining seconds by 3600 to get the integer quotient

Remaining seconds = 1605  The remaining seconds are now

Minutes = 26  The number of minutes can be isolated if you divide the remaining seconds by 60 to get the integer quotient

Seconds = 45  The last remainder, which happens to be the number of seconds left, is

Java
Days = 8  The number of days can be isolated if you divide the given integer by 86400 to get the integer quotient

Remaining seconds = 8805  The remaining seconds can be isolated if you divide the given integer by 86400 to get the integer remainder

Hours = 2  The number of hours can be isolated if you divide the remaining seconds by 3600 to get the integer quotient

Remaining seconds = 1605  The remaining seconds are now

Minutes = 26  The number of minutes can be isolated if you divide the remaining seconds by 60 to get the integer quotient

Seconds = 45  The last remainder, which happens to be the number of seconds left, is

C++
Days = 8  The number of days can be isolated if you divide the given integer by 86400 to get the integer quotient

Remaining seconds = 8805  The remaining seconds can be isolated if you divide the given integer by 86400 to get the integer remainder

Hours = 2  The number of hours can be isolated if you divide the remaining seconds by 3600 to get the integer quotient

Remaining seconds = 1605  The remaining seconds are now

Minutes = 26  The number of minutes can be isolated if you divide the remaining seconds by 60 to get the integer quotient

Seconds = 45  The last remainder, which happens to be the number of seconds left, is

C#
Days = 8  The number of days can be isolated if you divide the given integer by 86400 to get the integer quotient

Remaining seconds = 8805  The remaining seconds can be isolated if you divide the given integer by 86400 to get the integer remainder

Hours = 2  The number of hours can be isolated if you divide the remaining seconds by 3600 to get the integer quotient

Remaining seconds = 1605  The remaining seconds are now

Minutes = 26  The number of minutes can be isolated if you divide the remaining seconds by 60 to get the integer quotient

Seconds = 45  The last remainder, which happens to be the number of seconds left, is

Visual Basic
Days = 8  The number of days can be isolated if you divide the given integer by 86400 to get the integer quotient

Remaining seconds = 8805  The remaining seconds can be isolated if you divide the given integer by 86400 to get the integer remainder

Hours = 2  The number of hours can be isolated if you divide the remaining seconds by 3600 to get the integer quotient

Remaining seconds = 1605  The remaining seconds are now

Minutes = 26  The number of minutes can be isolated if you divide the remaining seconds by 60 to get the integer quotient

Seconds = 45  The last remainder, which happens to be the number of seconds left, is

Python
Days = 8  The number of days can be isolated if you divide the given integer by 86400 to get the integer quotient

Remaining seconds = 8805  The remaining seconds can be isolated if you divide the given integer by 86400 to get the integer remainder

Hours = 2  The number of hours can be isolated if you divide the remaining seconds by 3600 to get the integer quotient

Remaining seconds = 1605  The remaining seconds are now

Minutes = 26  The number of minutes can be isolated if you divide the remaining seconds by 60 to get the integer quotient

Seconds = 45  The last remainder, which happens to be the number of seconds left, is

The program for this algorithm is shown here.
PHP
<?php echo "Enter a period of time in seconds: "; $number = trim(fgets(STDIN)); $days = intval($number / 86400); // 60 * 60 * 24 = 86400 $r = $number % 86400; $hours = intval($r / 3600); // 60 * 60 = 3600 $r = $r % 3600; $minutes = intval($r / 60); $seconds = $r % 60; echo $days, " days ", $hours, " hours "; echo $minutes, " minutes and ", $seconds, " seconds"; ?>
Java
public static void main(String[] args) throws java.io.IOException { java.io.BufferedReader cin = new java.io. BufferedReader(new java.io.InputStreamReader(System.in)); int days, hours, minutes, number, r, seconds; System.out.print("Enter a period of time in seconds: "); number = Integer.parseInt(cin.readLine()); days = (int)(number / 86400); // 60 * 60 * 24 = 86400 r = number % 86400; hours = (int)(r / 3600); // 60 * 60 = 3600 r = r % 3600; minutes = (int)(r / 60); seconds = r % 60; System.out.println(days + " days " + hours + " hours "); System.out.println(minutes + " minutes and " + seconds + " seconds"); }
C++
#include <iostream> using namespace std; int main() { int days, hours, minutes, number, r, seconds; cout << "Enter a period of time in seconds: "; cin >> number; days = (int)(number / 86400); // 60 * 60 * 24 = 86400 r = number % 86400; hours = (int)(r / 3600); // 60 * 60 = 3600 r = r % 3600; minutes = (int)(r / 60); seconds = r % 60; cout << days << " days " << hours << " hours " << endl; cout << minutes << " minutes and " << seconds << " seconds"; return 0; }
C#
static void Main() { int days, hours, minutes, number, r, seconds; Console.Write("Enter a period of time in seconds: "); number = Int32.Parse(Console.ReadLine()); days = (int)(number / 86400); // 60 * 60 * 24 = 86400 r = number % 86400; hours = (int)(r / 3600); // 60 * 60 = 3600 r = r % 3600; minutes = (int)(r / 60); seconds = r % 60; Console.WriteLine(days + " days " + hours + " hours "); Console.Write(minutes + " minutes and " + seconds + " seconds"); Console.ReadKey(); }
Visual Basic
Sub Main() Dim days, hours, minutes, number, r, seconds As Integer Console.Write("Enter a period of time in seconds: ") number = Console.ReadLine() days = number \ 86400 ' 60 * 60 * 24 = 86400 r = number Mod 86400 hours = r \ 3600 ' 60 * 60 = 3600 r = r Mod 3600 minutes = r \ 60 seconds = r Mod 60 Console.WriteLine(days & " days " & hours & " hours ") Console.Write(minutes & " minutes and " & seconds & " seconds") Console.ReadKey() End Sub
Python
number = int(input("Enter a period of time in seconds: ")) days, r = divmod(number, 86400) # 60 * 60 * 24 = 86400 hours, r = divmod(r, 3600) # 60 * 60 = 3600 minutes, seconds = divmod(r, 60) print(days, "days", hours, "hours ") print(minutes, "minutes and", seconds, "seconds")
Leave a Reply