kylai12n Ответов: 1

В C# время datetimerpicker разностное


я пытаюсь получить разницу во времени от средства выбора даты и времени в часах

Я получил это как пользовательский формат: ММ-ДД-гггг | чч:мм:СС

Но я как бы сокрушаю свой разум

Например я хочу
Первая дата: 1-1-2016 | 23: 00:00
Вторая дата: 3-1-2016 | 1: 00:00

Я хочу, чтобы он проверил разницу в часах

Вот это 26 часов (24 + 2 часа), но как бы я сделал это в коде?

Это элемент datetimepicker

Что я уже пробовал:

Я имею в виду Тинг с которым я борюсь

Я могу сделать 23: 00: 00 часов - 1: 00: 00, но тогда есть борьба с днями

Есть 2 дня между ним и первым днем, очевидно, не 24 часа

В основном я просто нуждался

Первое свидание &амп; comape время Второй дата &усилителя; времени

Сколько часов прошло с тех пор до второго свидания

Я попробовал что-то сделать с датой и временем.Сравните, но это не сработало здорово

1 Ответов

Рейтинг:
0

Sergey Alexandrovich Kryukov

Время не имеет формата. Время-это не строка, это структура данных, System.DateTime Ваша единственная проблема-думать о "форматах". Все, что вам нужно, это забыть его (пока вам не нужно вывести какую-то строку, выражающую момент времени или просто дату). Все элементы управления, такие как выбор даты и времени, используют этот тип.

"Разница во времени" производится как экземпляр различной структуры, System.TimeSpan; важно не путать промежуток времени, продолжительность, со временем, точкой на шкале времени (хотя технически это также промежуток времени с определенного момента истории, но типы абстрагируются от этой детали реализации). Разница во времени вычисляется с помощью оператора − - " (минус, вычитание), определенного для System.DateTime:

System.DateTime before, after;
// initialize both variables, via DateTimePicker 
// or any other way
// ...
System.TimeSpan timeSpent = after - before;

Вы также можете поменять местами операнды; если разница во времени не равна нулю, то один из результатов вычитания будет отрицательным, а другой положительным, если after представляет более поздний момент времени, чем before Другие арифметические операторы также определяются естественным образом.

Это все. Что касается строкового представления, то посмотрите на System.DateTime документация и читайте о методах ToString, Parse, ParseExact, TryParse и TryParseExact- все они.

—СА