Class to store and perform operation on TIME - C/C++

A C/C++ Program which stores TIME in HH:MM:SS format.
And the '+' and '-' Operators overloaded for the TIME Class to perform addition and subtraction of TIME.
The TIME class also has a function to validation of time.



#include<iostream.h>
#include<conio.h>
#include<string.h>
class TIME
{
public:
	int hh, mm, ss;
	char tz[3];
	TIME operator +(TIME &);
	TIME operator -(TIME &);
	void input();
	void display();
	void chk_time();
	void convert();
};
void TIME::input()
{
	cout << "\n\nEnter HH -> ";
	cin >> hh;
	cout << "Enter MM -> ";
	cin >> mm;
	cout << "Enter SS -> ";
	cin >> ss;
	cout << "(AM/PM) -> ";
	cin >> tz;
}
void TIME::display()
{
	cout << "\nTIME is -> ";
	cout << hh << ":" << mm << ":" << ss << "  " << tz;
}
void TIME::chk_time()
{
	if ((hh >= 0 && hh <= 12) && (mm >= 0 && mm < 60) && (ss >= 0 && ss < 60))
	{
		cout << "\nTIME is Valid ";
	}
	else
	{
		cout << "\nTIME is not Valid";
	}
}
void TIME::convert()
{
 
	if (strcmp(tz, "pm") == 0)
	{
		hh += 12;
	}
	if (strcmp(tz, "am") == 0 && hh == 12)
	{
		hh = 0;
	}
 
}
TIME TIME::operator +(TIME &tmp)
{
	TIME obj;
	obj.hh = hh + tmp.hh;
	obj.mm = mm + tmp.mm;
	obj.ss = ss + tmp.ss;
	if (obj.hh >= 12)
	{
		strcpy(obj.tz, "pm");
	}
	else
	{
		strcpy(obj.tz, "am");
	}
	return obj;
}
TIME TIME::operator -(TIME &tmp)
{
	TIME obj;
	obj.hh = hh - tmp.hh;
	obj.mm = mm - tmp.mm;
	obj.ss = ss - tmp.ss;
	if (obj.hh >= 12)
	{
		strcpy(obj.tz, "pm");
	}
	else
	{
		strcpy(obj.tz, "am");
	}
	return obj;
}
int main()
{
	clrscr();
	TIME o1, o2, o3, o4;
	o1.input();
	o1.convert();
	o1.display();
	o2.input();
	o2.convert();
	o2.display();
	o3 = o1 + o2;
	cout << "\n\nAfter Addition ";
	o3.display();
	o3.chk_time();
	o3 = o1 - o2;
	cout << "\n\nAfter Subtraction ";
	o3.display();
	o3.chk_time();
 
	getch();
	return 0;
}

Post a Comment