要求:兩個時間相加,得到的時間形如“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 }
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 }
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 }