Answer on C++ Question for Matt
write a program that ask the user to enter a number of seconds.
There are 60 seconds in a min. if the number of seconds entered by the user is greater than or equal to 60, the program should display the number of minutes in that many seconds.
There are 3,600 seconds in an hour. If the number of seconds entered by the user is greater than or equal to 3,600, the program should display the number of hours in that many seconds.
There are 86,400 seconds in a day. If the number entered by the user is greater than or equal to 86,400, the program should display that number of day in that many seconds.
using namespace std;
long InSeconds; // why is this external?
const int HOURS_IN_DAY = 24; // it's good form to make
const int MINUTES_IN_HOUR = 60; // symbolic constants all caps
const int SECONDS_IN_MINUTE = 60;
int seconds; // why are all these external?
long InMinutes, InHours ;
cout << "This program will turn your seconds into days,"
<< " hours, minutes and seconds." << endl;
cout << "Enter the amount of seconds:__________";
cin >> InSeconds;
Compute seconds, minutes, hours, days in that order.
Trying to do it in reverse order is causing your problem
// compute seconds
seconds = InSeconds % SECONDS_IN_MINUTE ;
// throw away seconds used in previous statement and convert to minutes
InMinutes = InSeconds / SECONDS_IN_MINUTE ;
// compute minutes
minutes = InMinutes % MINUTES_IN_HOUR ;
// throw away minutes used in previous statement and convert to hours
InHours = InMinutes / MINUTES_IN_HOUR ;
// compute hours
hours = InHours % HOURS_IN_DAY ;
// throw away hours used in previous statement and convert to days
days = InHours / HOURS_IN_DAY ;
cout << "That's " ;
if (days > 0)
cout << days << " days " ;
if (hours > 0)
cout << hours << " hours " ;
if (minutes > 0)
cout << minutes << " minutes " ;
if (seconds >0)
cout << seconds << " seconds " ;
cout << endl ;