![]() |
| | #1 |
| Registered User Join Date: May 2002
Posts: 15
| calculating user time and time elapsed im creating a program which uses the data type Mytime the output should look something like Enter start hh mm : 7 30 Enter finish hh mm : 7 30 Time elapsed from 07:30 until 07:30 is 00:00 2 functions have not yet been defined display1Time() & elapsed(). The program currently compiles in unix g++ i have filled the un defined function to get the program running. Basically i cant work out how to get the time displayed and the total time elapsed working. I think the time the user enters has to be converted to minutes. Can anyone help please ? Code: // Incomplete version
#include <iostream>
using namespace std;
struct Mytime
{
int hours;
int mins;
};
int timecmp(Mytime,Mytime);
// returns 0 if times are same
// returns >0 if first is later than second
// returns <0 if first is before second
int setTime(Mytime& t, int h, int m );
// if valid time sets hh and mm to h and m
// and returns 0
// if invalid returns integer > 0 as error code
// error code +1 = underflow hours
// error code +2 = overflow hours
// error code +4 = underflow mins
// error code +8 = overflow mins
void display1Time(Mytime t);
// displays in form hh:mm
void elapsed(Mytime t1, Mytime t2, Mytime& duration);
// determines the time duration between t1 and t2
// t1 assumed to be earlier than t2
void main()
{
Mytime now;
Mytime then;
Mytime howlong;
int h,m;
do // validate input
{
cout << "Enter start hh mm : ";
cin >> h >> m ;
} while (setTime(now,h,m));
do
{
cout << "Enter finish hh mm : ";
cin >> h >> m ;
} while (setTime(then,h,m));
elapsed(now,then,howlong);
cout << "Time elapsed from ";
display1Time(now);
cout << " until ";
display1Time(then);
cout << " is ";
display1Time(howlong);
cout << endl;
}
int timecmp(Mytime t1,Mytime t2)
{
if (t1.hours == t2.hours)
{
if (t1.mins == t2.mins)
{
return 0;
}
else // mins not same
{
if (t1.mins > t2.mins)
{
return 1; // greater than zero
}
else
{
return -1;
}
}
}
else // hours not same
{
if (t1.mins > t2.mins)
{
return 1;
}
else
{
return -1;
}
}
}
int setTime(Mytime& t, int h, int m )
{
int errorCode = 0;
if (h < 0) errorCode += 1;
if (h > 23) errorCode += 2;
if (m < 0) errorCode += 4;
if (m > 59) errorCode += 8;
if (errorCode==0){t.hours = h; t.mins = m;}
return errorCode;
}
//////////// THE FOLLOWING FUNCTIONS ARE INCOMPLETE
void display1Time(Mytime t)
{
cout << "00:00";
}
void elapsed(Mytime t1, Mytime t2, Mytime& duration)
{
setTime(duration,0,0);
}
|
| Neildadon is offline | |
![]() |
| Thread Tools | |
| Display Modes | |
|
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Contest Results - May 27, 2002 | ygfperson | A Brief History of Cprogramming.com | 18 | 06-18-2002 01:27 PM |
| I apologize. Good bye. | doubleanti | A Brief History of Cprogramming.com | 14 | 05-03-2002 06:51 PM |
| give user time to read messages | Shadow | C Programming | 2 | 04-21-2002 12:54 AM |
| Is this really true or it's just science fiction? | Nutshell | A Brief History of Cprogramming.com | 145 | 04-09-2002 06:17 PM |
| Need to give user more time | Natase | C Programming | 6 | 09-16-2001 05:21 PM |