Найти промежуток между двумя временными точками - C#

Узнай цену своей работы

Формулировка задачи:

Помогите решить задачу, плиз. Нужно разработать класс на языке с# который для заданных начала и конца некоторого промежутка времени в часах, минутах и секундах ( в пределах одних суток) находит продолжительность промежутка времени в тех же единицах измерения. Например: длительность временного интервала с 9:40:00 по 11:20:00 составляет 1 час. 30 мин. 0 сек.

Решение задачи: «Найти промежуток между двумя временными точками»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             Console.WriteLine(new DayTime(21,45,55) - new DayTime(3,55,50));
  13.  
  14.             var span = new TimeSpan(21, 45, 55) - new TimeSpan(3, 55, 50); //для
  15.             Console.WriteLine("{0} ч. {1} м. {2} с. //timespan", span.Hours, span.Minutes, span.Seconds); // проверки
  16.  
  17.             Console.WriteLine(new DayTime(15, 45, 55) + new DayTime(3, 55, 50));
  18.  
  19.             span = new TimeSpan(15, 45, 55) + new TimeSpan(3, 55, 50); //для
  20.             Console.WriteLine("{0} ч. {1} м. {2} с. //timespan", span.Hours, span.Minutes, span.Seconds); // проверки
  21.  
  22.            
  23.  
  24.             try
  25.             {
  26.                 Console.WriteLine(new DayTime(3, 45, 55) - new DayTime(3, 55, 50)); //если большее от меньшего отнимаем - словим ексепшн
  27.             }
  28.             catch (Exception ex) { Console.WriteLine(ex.Message); }
  29.  
  30.             try
  31.             {
  32.                 new DayTime(34, 34, 34);              
  33.             }
  34.             catch (Exception ex) { Console.WriteLine(ex.Message); }
  35.  
  36.  
  37.             Console.ReadKey();
  38.  
  39.         }
  40.  
  41.         class DayTime {
  42.  
  43.             int _hours;
  44.             int _minutes;
  45.             int _seconds;
  46.  
  47.             public int Hours { get { return _hours ; }
  48.             set {
  49.                 if (value >= 0 && value <= 23) _hours = value;
  50.                 else throw new ArgumentException("Wrong parameter!","Hours");
  51.             }}
  52.  
  53.  
  54.             public int Minutes { get { return _minutes; }
  55.             set {
  56.                 if (value >= 0 && value <= 59) _minutes = value;
  57.                 else throw new ArgumentException("Wrong parameter!", "Minutes");                
  58.             }}
  59.  
  60.  
  61.             public int Seconds { get { return _seconds; }
  62.             set { _seconds = value;
  63.                 if (value >= 0 && value <= 59) _seconds = value;
  64.                 else throw new ArgumentException("Wrong parameter!", "Seconds");
  65.             }}
  66.  
  67.            
  68.             public static DayTime operator +(DayTime dt1, DayTime dt2)
  69.             {
  70.                 int h = dt1.Hours + dt2.Hours;
  71.                 int m = dt1.Minutes + dt2.Minutes;
  72.                 int s = dt1.Seconds + dt2.Seconds;
  73.  
  74.                 if (s > 59) { m++; s -= 60; }
  75.                 if (m > 59) { h++; m -= 60; }
  76.                 if (h > 23) throw new Exception("Overflow (+) DayTime!");
  77.  
  78.                 return new DayTime(h, m, s);
  79.             }
  80.  
  81.             public static DayTime operator -(DayTime dt1, DayTime dt2)
  82.             {
  83.                 int h = dt1.Hours - dt2.Hours;
  84.                 int m = dt1.Minutes - dt2.Minutes;
  85.                 int s = dt1.Seconds - dt2.Seconds;
  86.  
  87.                 if (s < 0) { m--; s = 60 + s; }
  88.                 if (m < 0) { h--; m = 60 + m; }
  89.                 if (h < 0) throw new Exception("DayTime < 0!");
  90.  
  91.                 return new DayTime(h, m, s);
  92.             }
  93.  
  94.  
  95.             public DayTime(int _h,int _m,int _s) {
  96.  
  97.                 if (_h >= 0 && _h <= 23) _hours = _h;
  98.                 else throw new ArgumentException("Wrong parameter!", "Hours");
  99.                 if (_m >= 0 && _m <= 59) _minutes = _m;
  100.                 else throw new ArgumentException("Wrong parameter!", "Minutes");
  101.                 if (_s >= 0 && _s <= 59) _seconds = _s;
  102.                 else throw new ArgumentException("Wrong parameter!", "Seconds");
  103.                
  104.             }
  105.  
  106.             public override string ToString()
  107.             {
  108.                 return string.Format("{0}:{1}:{2}", _hours.ToString().PadLeft(2, '0'), _minutes.ToString().PadLeft(2, '0'), _seconds.ToString().PadLeft(2, '0'));
  109.             }      
  110.        
  111.        
  112.        
  113.         }
  114.  
  115.  
  116.     }
  117. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы