Hi im a little bit stuck on this program im working on.
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 ?
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);
}