【原】两个时间相加的运算符重载实现
生活随笔
收集整理的這篇文章主要介紹了
【原】两个时间相加的运算符重载实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
要求:兩個時間相加,得到的時間形如“xx時:xx分:xx秒”
--------------------------------------------------------------------------------------------------------------
解答:
首先編寫時間處理類
?
時間類 ?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?}
?
然后編寫主函數相關代碼
主函數 ?1?class?Program?2?{
?3?????static?void?Main(string[]?args)
?4?????{
?5?????????Time?time1?=?new?Time(1,?42,?16);???????//?實例化對象1
?6?????????Time?time2?=?new?Time(2,?26,?52);???????//?實例化對象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
總結
以上是生活随笔為你收集整理的【原】两个时间相加的运算符重载实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVisualVM监控jvm
- 下一篇: Drools 规则引擎的使用