【原】两个时间相加的运算符重载实现

要求:两个时间相加,得到的时间形如“xx时:xx分:xx秒”

--------------------------------------------------------------------------------------------------------------

解答:

首先编写时间处理类

 

ExpandedBlockStart.gif时间类
 1 /// <summary>
 2 /// 时间类
 3 /// </summary>
 4 class Time
 5 {
 6     #region 域
 7 
 8     private int _hours, _minutes, _seconds;
 9 
10     #endregion
11 
12     #region 属性
13 
14     /// <summary>
15     /// 秒
16     /// </summary>
17     public int Seconds
18     {
19         get { return _seconds; }
20         set { _seconds = value; }
21     }
22     /// <summary>
23     /// 分
24     /// </summary>
25     public int Minutes
26     {
27         get { return _minutes; }
28         set { _minutes = value; }
29     }
30     /// <summary>
31     /// 时
32     /// </summary>
33     public int Hours
34     {
35         get { return _hours; }
36         set { _hours = value; }
37     }
38 
39     #endregion
40 
41     #region 构造函数
42 
43     /// <summary>
44     /// 无参构造函数
45     /// </summary>
46     public Time()
47     {
48         this._hours = 0;
49         this._minutes = 0;
50         this._seconds = 0;
51     }
52     /// <summary>
53     /// 有参构造函数
54     /// </summary>
55     /// <param name="hours"></param>
56     /// <param name="minutes"></param>
57     /// <param name="seconds"></param>
58     public Time(int hours,int minutes,int seconds)
59     {
60         this._hours = hours;
61         this._minutes = minutes;
62         this._seconds = seconds;
63     }
64 
65     #endregion
66 
67     #region 自定义函数
68 
69     /// <summary>
70     /// 重载+函数
71     /// </summary>
72     /// <param name="time1">时间1</param>
73     /// <param name="time2">时间2</param>
74     /// <returns></returns>
75     public static Time operator +(Time time1,Time time2)
76     {
77         Time result = new Time();
78         result._seconds = time1._seconds + time2._seconds;                              // 计算秒
79         result._minutes = time1._minutes + time2._minutes + result._seconds / 60;       // 计算分
80         result._hours = time1._hours + time2._hours + result._minutes / 60;             // 计算时
81         result._seconds = result._seconds % 60;                                         // 正确显示秒(超过60应该取余)
82         result._minutes = result._minutes % 60;                                         // 正确显示分(超过60应该取余)
83         return result;
84     }
85 
86     #endregion
87 }

 

然后编写主函数相关代码

ExpandedBlockStart.gif主函数
 1 class Program
 2 {
 3     static void Main(string[] args)
 4     {
 5         Time time1 = new Time(14216);       // 实例化对象1
 6         Time time2 = new Time(22652);       // 实例化对象2
 7         Time result = time1 + time2;            // 重载+运算符以计算时间
 8         Console.WriteLine("{0}时:{1}分:{2}秒", result.Hours, result.Minutes, result.Seconds);
 9         Console.ReadLine();
10     }
11 }

 

 

转载于:https://www.cnblogs.com/temptation/archive/2010/11/08/1872192.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IOT变现

IOT&#xff08;物联网&#xff09;变现1. IOT 设备基础结构2.IOT 组成元素3.从M2M扩展到IOT的世界4. 工业4.0最近在看IOT变现&#xff0c;记录一下核心的知识点概念&#xff1a;IOT 是利用无线标签&#xff0c;传感器&#xff0c;MEMS(micro-ElectroMechanical System&#xf…

【C++深度剖析教程40】使用数值型模板技术计算1+2+3+...+N的值

上一篇文章学习了数值型模板技术&#xff0c;并利用相关技术&#xff0c;实现了C的数组类模板。点击文章查看上一篇文章&#xff1a;点击链接查看 本篇文章&#xff0c;继续利用模板技术来解决一个问题。 如果想求123…N的结果&#xff0c;有很多种方法。可以循环遍历&#x…

前端学习(169):无语义元素

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/ html4/strict.dtd"> <html><head><meta http-equiv"content-type" content"text/html; charsetutf-8"><title>无语义标签&…

dubbo思维导图

dubbo思维导图之前总结的 后续持续更新中

前端学习(170):无语义元素二

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/ html4/strict.dtd"> <html><head><meta http-equiv"content-type" content"text/html; charsetutf-8"><title>DIVCSS布局&…

【软件开发底层知识修炼】九 链接器-可重定位文件与可执行文件

上几篇文章学习了Binutils辅助工具里面的几个实用的工具&#xff0c;那些工具对于以后的学习都是非常有帮助的&#xff0c;尤其是C语、C语言的学习以及调试是非常有帮助的。点击链接查看上一篇文章&#xff1a;点击查看 本篇文章开始一个新的知识的学习&#xff0c;链接器的学习…

【软件开发底层知识修炼】十 链接器-main函数不是第一个被执行的函数

上一篇文章&#xff0c;大概了解了链接器的工作内容就是&#xff1a;符号解析和重定位。点击上一篇文章查看&#xff1a;点击查看。 本片文章其实还是围绕链接器来学习。只不过不是很明显&#xff0c;当你学到下一篇文章时&#xff0c;就明白了。 本篇文章来弄明白一个问题&a…

分享博文摘要图标【11/16更新】

经常写文章&#xff0c;希望给朴素的浏览界面添加一些生动的图标&#xff0c;让浏览者直接通过图片来得知这篇文章讲的是什么&#xff1f; &#xff08;效果预览...&#xff09; 博主特意搜集并上传了一些大家可能会用到的图标&#xff0c;提供16、32、48、64、128、甚至256像素…

【OS学习笔记】十二 现代处理器的结构和特点

本文是一个衔接点&#xff0c;上一篇文章以前都是学习8086实模式的知识。本文开始学习80386这种现代处理器的编程架构。由此进入保护模式的学习。点击链接查看上一篇文章&#xff1a;上一篇文章 1、现代处理器的结构和特点 1 流水线技术 处理器可以做很多事情&#xff0c;能…

前端学习(172):格式化文本

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/ html4/strict.dtd"> <html><head><meta http-equiv"content-type" content"text/html; charsetutf-8"><title>格式化</…

输出星号平行四边形

输出星号平行四边形 代码 #include <stdio.h>intmain(){inti, j, k, max; printf("Input max:"); scanf("%d", &max);for(i 1; i <max /21; i) /*1~max / 2 1 行 */{for(j max /2-i; j >0; j--) /*第i行的空白字符 */{ putchar(); }for(j…

投资理财分享

投资理财分享理财是作为工作之外的另一个技能&#xff0c;一直想去学习&#xff0c;但是由于种种原因&#xff0c;推迟&#xff0c;最近开始了自己理财课程&#xff0c;适合小白入手&#xff0c;持续更新中&#xff1b;

【OS学习笔记】十三 保护模式一:全局描述符表(GDT)

上一篇文章&#xff0c;我们大致领略了现代处理器的结构和特点。点解链接查看上一篇文章&#xff1a;现代处理器的结构和特点 本篇文章开始&#xff0c;学习保护模式下的的各种机制。什么是保护模式呢&#xff1f; 一般来说&#xff0c;操作系统负责整个计算机软硬件的的管理…

众多SEO专家集体盛赞

《SEO实战密码》将给你思路、眼界和方法的拓展之道。选一个适宜阅读的角落&#xff0c;一杯咖啡&#xff0c;一支笔&#xff0c;听Zac系统地讲SEO知识、见解和经验分享吧。我们都知道&#xff0c;你的竞争对手也会是Zac的粉丝。 葛小飞&#xff08;天真&#xff09;&#xff0c…

前端学习(173):格式化文本二

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/ html4/strict.dtd"> <html><head><meta http-equiv"content-type" content"text/html; charsetutf-8"><title>格式化</…

【OS学习笔记】十四 保护模式二:段描述符

上一篇文章初步进入保护模式的学习。首先学习了全局描述符表GDT。点击链接查看上一篇文章&#xff1a;全局描述符表 本篇文章继续学习&#xff0c;GDT中存放的条目&#xff1a;描述符&#xff0c;确切的说是段描述符。学习段描述符的作用以及段描述符的格式。 1、段描述符的格…

前端学习(174):图片热区链接

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/ html4/strict.dtd"> <html><head><meta http-equiv"content-type" content"text/html; charsetutf-8"><title>超链接——图…

软件基础思维导图

软件基础1.进程和线程的多种状态2.软件基础1.进程和线程的多种状态 2.软件基础

【OS学习笔记】十五 保护模式三:保护模式下的内存访问机制

上一篇文章学习了段描述符与段描述符各个标志位的含义&#xff1a;段描述符 本篇文章学习如何进入保护模式&#xff0c;并学习如何在保护模式下进行内存访问。 1、如何进入保护模式 假设我们已经用汇编语言将段描述符安装到GDT中&#xff08;具体的汇编代码在后面的文章中会…

前端学习(175):弹窗

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/ html4/strict.dtd"> <html><head><meta http-equiv"content-type" content"text/html; charsetutf-8"><title>超链接——J…