Объяснение: объяснение абсолютного значения временного интервала

#c#

#c#

Вопрос:

Это не вопрос кодирования, это скорее общий вопрос об объекте TimeSpan в C #. Одним из методов временного интервала является Duration(). Per MSDN, this method provides another TimeSpan object that contains the timespan as an absolute value. Я не понимаю, что означает абсолютное значение в этом случае. Когда я печатаю абсолютное значение, я получаю 736179.14: 46:32.5485475. Я пытаюсь понять, что означает абсолютное значение временного интервала, чтобы я мог перевести это значение в соответствующую переменную double.

Комментарии:

1. Абсолютное значение обычно означает «расстояние от нуля» независимо от положительного или отрицательного направления. Что происходит, когда вы вызываете это свойство на отрицательном временном интервале?

2. Да, я чувствую, что пример в документах довольно ясен..

3. В документации есть примеры, которые кажутся мне довольно понятными — точно так же, как действительные числа, это превращает «отрицательный» временной интервал (время начала после времени окончания) в положительный.

4. Например, DateTime — это один момент времени. Временной интервал — это отрезок времени, но он может быть отрицательным. DateTime.Now() - DateTime.Now().AddDays(1) выдает результат «отрицательный 1 день» и "negative 1 days".Duration() выдает результат «1 день».

5. Если вам нужно единственное double значение, тогда TotalDays похоже, что вы хотите.

Ответ №1:

Абсолютное значение означает расстояние от нуля без учета знака числа. Итак, -4 имеет абсолютное значение 4.

Ваш номер: 736179.14:46:32.5485475 является абсолютным значением a Duration .

Оно представлено в следующем формате (который, я полагаю, вас смущает):

Дни.Часы: Минуты: секунды.Доли секунды

 736179 days  
14 hours  
46 minutes  
32 seconds  
5485475 Fractions of a second
  

Комментарии:

1. Я немного запутался, поэтому удалил этот комментарий.. Если это ровно 3 знака после запятой, то это «миллисекунды», .333 — это «333 миллисекунды», ровно 6 — это микросекунды и т.д… Это ровно 7 знаков после запятой, у которых нет префикса .. поэтому я бы просто назвал это дробными секундами. .333 технически составляет как «333 миллисекунды», так и «.333» доли секунды, я полагаю..

2. @Quantic Right, при создании Duration 4-й параметр принимается за миллисекунды, но отображается как доли секунды.