运算符重载的示例,计算两个时间的和
回答一个运算符重载的问题,帮他写出了代码,记录备份
http://topic.csdn.net/u/20080728/23/38e0111e-5ce9-4af8-9622-4cf815a58805.html
需求
创建有以下数据成员的类:Time
标识符 类型
Hours Integer
Minutes Integer
Seconds Integer
重载+操作符,用于将Seconds字段中包含的值加1.当Seconds的值等于60时,将Minutes的值加1,然后将Seconds的值置为0.
同样,当Minutes的值为60时,必须执行以下操作:
1.Minutes的值回复为0;
2.Seconds的值回复为0;
3.Hours的值增加1;
当Hours的值等于24时,所有三个字段的值必须回复为0.必须将这三个字段的值作为参数传递,将结果在控制台上输出.
代码
public class Complex
{
public int _sec = 0;
public int _min = 0;
public int _hour = 0;
public Complex(int sec, int min, int hour)
{
if (sec >= 60)
{
_sec = sec % 60;
_min += sec / 60;
}
else
{
_sec = sec;
}
_min += min;
if (_min >= 60)
{
_hour += _min / 60;
_min = _min % 60;
}
_hour += hour;
}
public static Complex operator +(Complex c1, Complex c2)
{
int intSec = 0;
int intMin = 0;
int intHour = 0;
if (c1._sec + c2._sec >= 60)
{
intSec = (c1._sec + c2._sec )% 60;
intMin += (c1._sec + c2._sec) / 60;
}
if (c1._min + c2._min + intMin >= 60)
{
intHour +=( c1._min + c2._min + intMin )/ 60;
intMin = (c1._min + c2._min + intMin) % 60;
}
intHour += c1._hour + c2._hour;
return new Complex(intSec, intMin, intHour);
// return c3;
}
}
调用代码如下
Complex cc = new Complex(23, 34, 0);
Complex c1 = new Complex(37, 34, 0);
Complex c3 = cc + c1;
MessageBox.Show(c3._hour.ToString()+"/"+ c3._min.ToString()+"/"+c3._sec.ToString());

浙公网安备 33010602011771号