Timespan C: все, что вам нужно знать о временных интервалах
В C# тип данных TimeSpan представляет интервал времени в формате дней, часов, минут, секунд и миллисекунд. Он может быть использован для хранения продолжительности времени или для выполнения арифметических операций над датами и временами.
Создание объекта TimeSpan
Объект TimeSpan можно создать с помощью конструктора, который принимает параметры, представляющие количество дней, часов, минут, секунд и миллисекунд. Например, следующий код создает объект TimeSpan, представляющий 3 дня, 2 часа, 30 минут, 10 секунд и 500 миллисекунд:
TimeSpan ts = new TimeSpan(3, 2, 30, 10, 500);
Управление временем с помощью объекта TimeSpan
Вы можете использовать объект TimeSpan для выполнения арифметических операций над датами и временами. Например, вы можете добавить 2 дня к текущей дате следующим образом:
DateTime currentDateTime = DateTime.Now;
TimeSpan ts = new TimeSpan(2, 0, 0, 0);
DateTime newDateTime = currentDateTime + ts;
Также можно рассчитать разницу между двумя датами, создав объект TimeSpan со значением разницы:
DateTime date1 = new DateTime(2021, 1, 1);
DateTime date2 = new DateTime(2022, 1, 1);
TimeSpan difference = date2 - date1;
Использование методов TimeSpan
Объект TimeSpan также содержит ряд методов, которые позволяют вам выполнить различные операции с временными интервалами. Например, метод Add позволяет добавить определенный интервал времени к существующему объекту TimeSpan, а метод Subtract — вычесть интервал времени из объекта TimeSpan.
TimeSpan ts1 = new TimeSpan(3, 0, 0, 0);
TimeSpan ts2 = new TimeSpan(1, 0, 0, 0);
TimeSpan sum = ts1.Add(ts2); // sum содержит 4 дня
TimeSpan difference = ts1.Subtract(ts2); // difference содержит 2 дня
Также объект TimeSpan содержит методы для преобразования интервалов времени в другие форматы, такие как миллисекунды, секунды, минуты и т.д. например:
TimeSpan ts = new TimeSpan(3, 2, 30, 10, 500);
double totalMilliseconds = ts.TotalMilliseconds; // 264010500
int totalSeconds = ts.Seconds; // 10
int totalMinutes = ts.Minutes; // 30
int totalHours = ts.Hours; // 2
int totalDays = ts.Days; // 3