运算符重载的示例,计算两个时间的和

回答一个运算符重载的问题,帮他写出了代码,记录备份

http://topic.youkuaiyun.com/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());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值