Найти промежуток между двумя временными точками - C#
Формулировка задачи:
Помогите решить задачу, плиз. Нужно разработать класс на языке с# который для заданных начала и конца некоторого промежутка времени в часах, минутах и секундах ( в пределах одних суток) находит продолжительность промежутка времени в тех же единицах измерения. Например: длительность временного интервала с 9:40:00 по 11:20:00 составляет 1 час. 30 мин. 0 сек.
Решение задачи: «Найти промежуток между двумя временными точками»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine(new DayTime(21,45,55) - new DayTime(3,55,50));
- var span = new TimeSpan(21, 45, 55) - new TimeSpan(3, 55, 50); //для
- Console.WriteLine("{0} ч. {1} м. {2} с. //timespan", span.Hours, span.Minutes, span.Seconds); // проверки
- Console.WriteLine(new DayTime(15, 45, 55) + new DayTime(3, 55, 50));
- span = new TimeSpan(15, 45, 55) + new TimeSpan(3, 55, 50); //для
- Console.WriteLine("{0} ч. {1} м. {2} с. //timespan", span.Hours, span.Minutes, span.Seconds); // проверки
- try
- {
- Console.WriteLine(new DayTime(3, 45, 55) - new DayTime(3, 55, 50)); //если большее от меньшего отнимаем - словим ексепшн
- }
- catch (Exception ex) { Console.WriteLine(ex.Message); }
- try
- {
- new DayTime(34, 34, 34);
- }
- catch (Exception ex) { Console.WriteLine(ex.Message); }
- Console.ReadKey();
- }
- class DayTime {
- int _hours;
- int _minutes;
- int _seconds;
- public int Hours { get { return _hours ; }
- set {
- if (value >= 0 && value <= 23) _hours = value;
- else throw new ArgumentException("Wrong parameter!","Hours");
- }}
- public int Minutes { get { return _minutes; }
- set {
- if (value >= 0 && value <= 59) _minutes = value;
- else throw new ArgumentException("Wrong parameter!", "Minutes");
- }}
- public int Seconds { get { return _seconds; }
- set { _seconds = value;
- if (value >= 0 && value <= 59) _seconds = value;
- else throw new ArgumentException("Wrong parameter!", "Seconds");
- }}
- public static DayTime operator +(DayTime dt1, DayTime dt2)
- {
- int h = dt1.Hours + dt2.Hours;
- int m = dt1.Minutes + dt2.Minutes;
- int s = dt1.Seconds + dt2.Seconds;
- if (s > 59) { m++; s -= 60; }
- if (m > 59) { h++; m -= 60; }
- if (h > 23) throw new Exception("Overflow (+) DayTime!");
- return new DayTime(h, m, s);
- }
- public static DayTime operator -(DayTime dt1, DayTime dt2)
- {
- int h = dt1.Hours - dt2.Hours;
- int m = dt1.Minutes - dt2.Minutes;
- int s = dt1.Seconds - dt2.Seconds;
- if (s < 0) { m--; s = 60 + s; }
- if (m < 0) { h--; m = 60 + m; }
- if (h < 0) throw new Exception("DayTime < 0!");
- return new DayTime(h, m, s);
- }
- public DayTime(int _h,int _m,int _s) {
- if (_h >= 0 && _h <= 23) _hours = _h;
- else throw new ArgumentException("Wrong parameter!", "Hours");
- if (_m >= 0 && _m <= 59) _minutes = _m;
- else throw new ArgumentException("Wrong parameter!", "Minutes");
- if (_s >= 0 && _s <= 59) _seconds = _s;
- else throw new ArgumentException("Wrong parameter!", "Seconds");
- }
- public override string ToString()
- {
- return string.Format("{0}:{1}:{2}", _hours.ToString().PadLeft(2, '0'), _minutes.ToString().PadLeft(2, '0'), _seconds.ToString().PadLeft(2, '0'));
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д