Экспорт (0) Печать
Развернуть все
Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала
2 из 2 оценили этот материал как полезный - Оценить эту тему

TimeSpan - структура

Представляет интервал времени.

Пространство имен:  System
Сборка:  mscorlib (в mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct TimeSpan : IComparable, IComparable<TimeSpan>, 
	IEquatable<TimeSpan>, IFormattable

Тип TimeSpan предоставляет следующие члены.

  ИмяОписание
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTimeSpan(Int64)Инициализирует новый экземпляр структуры TimeSpan заданным числом тактов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTimeSpan(Int32, Int32, Int32)Выполняет инициализацию нового экземпляра структуры TimeSpan с заданным количеством часов, минут и секунд.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTimeSpan(Int32, Int32, Int32, Int32)Выполняет инициализацию нового экземпляра структуры TimeSpan с заданным количеством дней, часов, минут и секунд.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTimeSpan(Int32, Int32, Int32, Int32, Int32)Инициализирует новый экземпляр структуры TimeSpan данному число дней, часов, минут, секунд и миллисекунд.
В начало страницы
  ИмяОписание
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsDaysВозвращает компонент дней периода времени, представленного текущей структурой TimeSpan.
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsHoursВозвращает компонент часов периода времени, представленного текущей структурой TimeSpan.
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsMillisecondsВозвращает компонент миллисекунд периода времени, представленного текущей структурой TimeSpan.
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsMinutesВозвращает компонент минут периода времени, представленного текущей структурой TimeSpan.
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsSecondsВозвращает компонент секунд периода времени, представленного текущей структурой TimeSpan.
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTicksВозвращает количество тактов, представляющее значение текущей структуры TimeSpan.
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTotalDaysВозвращает значение текущей структуры TimeSpan, выраженное как целое и дробное количество дней.
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTotalHoursПолучает значение текущей структуры TimeSpan, выраженное как целое и дробное количество часов.
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTotalMillisecondsПолучает значение текущей структуры TimeSpan, выраженное как целое и дробное количество миллисекунд.
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTotalMinutesВозвращает значение текущей структуры TimeSpan, выраженное как целое и дробное количество минут.
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTotalSecondsВозвращает значение текущей структуры TimeSpan, выраженное как целое и дробное количество секунд.
В начало страницы
  ИмяОписание
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsAddВозвращает новый объект TimeSpan, значение которого равно сумме указанного объекта TimeSpan и данного экземпляра.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsCompareСравнивает два значения TimeSpan и возвращает целое значение, которое показывает, является ли первое значение короче, равно или длиннее второго значения.
Открытый методПоддерживается платформой XNA FrameworkCompareTo(Object)Сравнивает данный экземпляр с указанным объектом и возвращает целое число, которое показывает, как соотносится данный экземпляр с указанным объектом: короче него, равен ему или длиннее указанного объекта.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsCompareTo(TimeSpan)Сравнивает данный экземпляр с указанным объектом TimeSpan и возвращает целое число, которое показывает, как соотносится данный экземпляр с объектом TimeSpan: короче него, равен ему или длиннее указанного объекта.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsDurationВозвращает новый объект TimeSpan, значением которого является абсолютное значение текущего объекта TimeSpan.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsEquals(Object)Возвращает значение, показывающее, равен ли данный экземпляр заданному объекту. (Переопределяет ValueType.Equals(Object).)
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsEquals(TimeSpan)Возвращает значение, указывающее, равен ли данный экземпляр заданному объекту TimeSpan.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsEquals(TimeSpan, TimeSpan)Возвращает значение, указывающее, равны ли два заданных экземпляра TimeSpan.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsFromDaysВозвращает объект TimeSpan, представляющий заданное количество дней, округленное до ближайшей миллисекунды.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsFromHoursВозвращает объект TimeSpan, представляющий указанное количество часов, округленное до ближайшей миллисекунды.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsFromMillisecondsВозвращает объект TimeSpan, представляющий указанное количество миллисекунд.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsFromMinutesВозвращает объект TimeSpan, представляющий указанное количество минут, округленное до ближайшей миллисекунды.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsFromSecondsВозвращает объект TimeSpan, представляющий указанное количество секунд, округленное до ближайшей миллисекунды.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsFromTicksВозвращает объект TimeSpan, представляющий заданное время в тактах.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsGetHashCodeВозвращает хэш-код для данного экземпляра. (Переопределяет ValueType.GetHashCode().)
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsGetTypeВозвращает объект Type для текущего экземпляра. (Унаследовано от Object.)
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsNegateВозвращает новый объект TimeSpan, значение которого равно значению данного экземпляра с противоположным знаком.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsParse(String)Преобразует строковое представление интервала времени в его эквивалент TimeSpan.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsParse(String, IFormatProvider)Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные сведения о форматировании, связанные с языком и региональными параметрами.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsParseExact(String, String, IFormatProvider)Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные формат и сведения о форматировании, связанные с языком и региональными параметрами. Формат строкового представления должен полностью соответствовать заданному формату.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsParseExact(String, String[], IFormatProvider)Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанный массив строк форматирования и сведения о форматировании, связанные с языком и региональными параметрами. Формат строкового представления должен полностью соответствовать одному из заданных форматов.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsParseExact(String, String, IFormatProvider, TimeSpanStyles)Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные формат, сведения о форматировании, связанные с языком и региональными параметрами, и стили. Формат строкового представления должен полностью соответствовать заданному формату.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsParseExact(String, String[], IFormatProvider, TimeSpanStyles)Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные форматы, сведения о форматировании, связанные с языком и региональными параметрами, и стили. Формат строкового представления должен полностью соответствовать одному из заданных форматов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsSubtractВозвращает новый объект TimeSpan, значение которого равно разности между указанным объектом TimeSpan и данным экземпляром.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsToString()Преобразует значение текущего объекта TimeSpan в эквивалентное ему строковое представление. (Переопределяет ValueType.ToString().)
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsToString(String)Преобразует значение текущего объекта TimeSpan в эквивалентное ему строковое представление с использованием заданного формата.
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsToString(String, IFormatProvider)Преобразует числовое значение текущего объекта TimeSpan в эквивалентное ему строковое представление с использованием указанного формата и сведений об особенностях форматирования для данного языка и региональных параметров.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTryParse(String, TimeSpan)Преобразовывает строковое представление интервала времени в его эквивалент TimeSpan и возвращает значение, позволяющее определить успешность преобразования.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTryParse(String, IFormatProvider, TimeSpan)Преобразовывает заданное строковое представление интервала времени в его эквивалент TimeSpan, используя указанную информацию о форматировании, связанную с языком и региональными параметрами, и возвращает значение, которое показывает успешность преобразования.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTryParseExact(String, String, IFormatProvider, TimeSpan)Преобразовывает заданное строковое представление интервала времени в его эквивалент TimeSpan, используя указанный формат и информацию о форматировании, связанную с языком и региональными параметрами, и возвращает значение, которое показывает успешность преобразования. Формат строкового представления должен полностью соответствовать заданному формату.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTryParseExact(String, String[], IFormatProvider, TimeSpan)Преобразовывает заданное строковое представление интервала времени в его эквивалент TimeSpan, используя указанные форматы и информацию о форматировании, связанную с языком и региональными параметрами, и возвращает значение, которое показывает успешность преобразования. Формат строкового представления должен полностью соответствовать одному из заданных форматов.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTryParseExact(String, String, IFormatProvider, TimeSpanStyles, TimeSpan)Преобразовывает заданное строковое представление интервала времени в его эквивалент TimeSpan, используя указанный формат, информацию о форматировании, связанную с языком и региональными параметрами, и стили, и возвращает значение, которое показывает успешность преобразования. Формат строкового представления должен полностью соответствовать заданному формату.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTryParseExact(String, String[], IFormatProvider, TimeSpanStyles, TimeSpan)Преобразовывает заданное строковое представление интервала времени в его эквивалент TimeSpan, используя указанные форматы, информацию о форматировании, связанную с языком и региональными параметрами, и стили, и возвращает значение, которое показывает успешность преобразования. Формат строкового представления должен полностью соответствовать одному из заданных форматов.
В начало страницы
  ИмяОписание
Открытый операторСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsAdditionСкладывает два указанных экземпляра TimeSpan.
Открытый операторСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsEqualityУказывает, равны ли два экземпляра TimeSpan.
Открытый операторСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsGreaterThanПоказывает, является ли заданное значение TimeSpan большим другого заданного значения TimeSpan.
Открытый операторСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsGreaterThanOrEqualПоказывает, является ли заданное значение TimeSpan большим или равным другому заданному значению TimeSpan.
Открытый операторСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsInequalityПоказывает, являются ли два экземпляра TimeSpanнеравными.
Открытый операторСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsLessThanПоказывает, является ли заданное значение TimeSpan меньшим другого заданного значения TimeSpan.
Открытый операторСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsLessThanOrEqualПоказывает, является ли заданное значение TimeSpan меньшим или равным другому заданному значению TimeSpan.
Открытый операторСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsSubtractionВычитает указанный объект TimeSpan из другого указанного объекта TimeSpan.
Открытый операторСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsUnaryNegationВозвращает объект TimeSpan со значением, равным значению данного экземпляра с противоположным знаком.
Открытый операторСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsUnaryPlusВозвращает указанный экземпляр TimeSpan.
В начало страницы
  ИмяОписание
Открытое полеСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsMaxValueПредставляет максимальное значение TimeSpan. Это поле доступно только для чтения.
Открытое полеСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsMinValueПредставляет минимальное значение TimeSpan. Это поле доступно только для чтения.
Открытое полеСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTicksPerDayВозвращает количество тактов в 1 дне. Данное поле является константой.
Открытое полеСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTicksPerHourПредставляет количество тактов в 1 часе. Данное поле является константой.
Открытое полеСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTicksPerMillisecondВозвращает количество тактов в 1 миллисекунде. Данное поле является константой.
Открытое полеСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTicksPerMinuteВозвращает количество тактов в 1 минуте. Данное поле является константой.
Открытое полеСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsTicksPerSecondВозвращает количество тактов в 1 секунде.
Открытое полеСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsZeroПредставляет нулевое значение TimeSpan. Это поле доступно только для чтения.
В начало страницы
  ИмяОписание
Явная реализация интерфейсаЗакрытый методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsIComparable.CompareToСравнивает текущий экземпляр с другим объектом того же типа и возвращает целое число, которое показывает, расположен ли текущий экземпляр перед, после или на той же позиции в порядке сортировки, что и другой объект.
В начало страницы

Объект TimeSpan представляет интервал времени (длительность времени или затраченное время), которое измеряется как положительное или отрицательное число дней, часов, минут, секунд и долей секунд. Структуры TimeSpan могут также использоваться для представления времени дня, но только если время не связано с определенной датой. В противном случае должна использоваться структура DateTime или DateTimeOffset. (Дополнительные сведения о использовании структуры TimeSpan для представления времени дня, см. в разделе Выбор между типами DateTime, DateTimeOffset и TimeZoneInfo.)

Максимальной единицей времени, которую использует структура TimeSpan для измерения длительности, является день. Интервалы времени изменяются днями для согласованности, поскольку количество дней в более крупных единицах времени, таких как месяц или год, варьируется.

Значением объекта TimeSpan является количество тактов, равное представленному временному интервалу. Такт равен 100 наносекунд или одной десятимиллионной доли секунды. Объект TimeSpan может принимать значения в диапазоне от TimeSpan.MinValue до TimeSpan.MaxValue.

Создание экземпляра значения TimeSpan

Можно создать экземпляр значения TimeSpan несколькими способами:

  • Путем вызова его неявного конструктора по умолчанию. При этом создается объект, значение которого равно TimeSpan.Zero, как показано в следующем примере.

    
    TimeSpan interval = new TimeSpan();
    Console.WriteLine(interval.Equals(TimeSpan.Zero));    // Displays "True".
    
    
    
  • Вызвав один из его явных конструкторов. В следующем примере значение TimeSpan инициализируется заданным количеством часов, минут и секунд.

    
    TimeSpan interval = new TimeSpan(2, 14, 18);
    Console.WriteLine(interval.ToString());              // Displays "02:14:18".
    
    
    
  • Путем вызова метода или выполнения операции, возвращающей значение TimeSpan. Например, можно создать экземпляр значения TimeSpan, представляющий интервал между двумя значениями даты и времени, как показано в следующем примере.

    
    DateTime departure = new DateTime(2010, 6, 12, 18, 32, 0);
    DateTime arrival = new DateTime(2010, 6, 13, 22, 47, 0);
    TimeSpan travelTime = arrival - departure;  
    Console.WriteLine("{0} - {1} = {2}", arrival, departure, travelTime);      
    // The example displays the following output:
    //       6/13/2010 10:47:00 PM - 6/12/2010 6:32:00 PM = 1.04:15:00
    
    
    

    Можно инициализировать объект TimeSpan с нулем значению времени таким образом, как показано в следующем примере.

    
    using System;
    
    public class Example
    {
       static Random rnd = new Random();
    
       public static void Main()
       {
          TimeSpan timeSpent = TimeSpan.Zero;
    
          timeSpent += GetTimeBeforeLunch();
          timeSpent += GetTimeAfterLunch();
    
          Console.WriteLine("Total time: {0}", timeSpent);
       }
    
       private static TimeSpan GetTimeBeforeLunch()
       {
          return new TimeSpan(rnd.Next(3, 6), 0, 0);
       }
    
       private static TimeSpan GetTimeAfterLunch()
       {
          return new TimeSpan(rnd.Next(3, 6), 0, 0);
       }
    }
    // The example displays output like the following:
    //        Total time: 08:00:00
    
    
    

    Значения TimeSpan возвращаются арифметическими операторами и методами структур DateTime, DateTimeOffset и TimeSpan.

  • Путем анализа строкового представления значения объекта TimeSpan. Можно использовать методы Parse и TryParse для преобразования строк, содержащих интервалы времени, в значения TimeSpan. В следующем примере для преобразования массива строк в значения типа TimeSpan используется метод Parse.

    
    string[] values = { "12", "31.", "5.8:32:16", "12:12:15.95", ".12"};
    foreach (string value in values)
    {
       try {
          TimeSpan ts = TimeSpan.Parse(value);
          Console.WriteLine("'{0}' --> {1}", value, ts);
       }
       catch (FormatException) {
          Console.WriteLine("Unable to parse '{0}'", value);
       }
       catch (OverflowException) {
          Console.WriteLine("'{0}' is outside the range of a TimeSpan.", value);
       }   
    }
    // The example displays the following output:
    //       '12' --> 12.00:00:00
    //       Unable to parse '31.'
    //       '5.8:32:16' --> 5.08:32:16
    //       '12:12:15.95' --> 12:12:15.9500000
    //       Unable to parse '.12'  
    
    
    

    Кроме того можно определить точный формат строки ввода для анализа и преобразования в значение TimeSpan путем вызова метода ParseExact или TryParseExact.

Выполнение операций со значениями TimeSpan

Добавлять и вычитать промежутки времени можно либо с помощью операторов Addition и Subtraction, либо путем вызова методов Add и Subtract. Также можно сравнить два промежутка времени путем вызова методов Compare, CompareTo и Equals. Класс TimeSpan также включает методы Duration и Negate, которые преобразовывают интервалы времени в положительные и отрицательные значения,

Диапазон значений TimeSpan – от MinValue до MaxValue.

Форматирование значения TimeSpan

Значение TimeSpan может быть представлено как [-]д.чч:мм:сс.дс, где необязательный знак минус указывает, что интервал времени является отрицательным, компонент д представляет число дней, компонент чч — число часов по 24-часовой временной шкале, мм — число минут, сс — число секунд, а дс — число долей секунд. Иными словами, временной интервал состоит из положительного или отрицательного количества дней без указания времени суток или количества дней с указанием времени суток или только из времени суток.

Начиная с .NET Framework 4, структура TimeSpan поддерживает форматирование с учетом языка и региональных параметров посредством перегрузки ее метода ToString, который преобразует значение TimeSpan в его строковое представление. Метод TimeSpan.ToString() возвращает интервал времени с помощью инвариантного формата, идентичного возвращаемому значению в предыдущих версиях .NET Framework. Перегрузка TimeSpan.ToString(String) позволяет задавать формат строки, определяющий строковое представление интервала времени. Данная TimeSpan.ToString(String, IFormatProvider) позволяют указать строку формата и язык, правила форматирования используются для создания строкового представления временного интервала. TimeSpan поддерживает как стандарт и строки пользовательского формата. (Дополнительные сведения см. в разделах Строки стандартного формата TimeSpan и Строки пользовательского формата TimeSpan.) Однако только строки стандартных форматов, с учетом языка и региональных параметров.

Восстановление прежних версий форматирования TimeSpan

В некоторых случаях код, успешно форматирование значения TimeSpan в .NET Framework 3.5 и более ранних версиях происходит в .NET Framework 4. Это чаще всего в коде, который вызывает метод составное форматирование для форматирования TimeSpan значение со строкой формата. В следующем примере успешно форматирует значение TimeSpan в .NET Framework 3.5 и более ранних версиях, но приводит к возникновению исключения в .NET Framework 4 и более поздних версиях. Обратите внимание, что он пытается форматировать значение TimeSpan с помощью неподдерживаемого спецификатора формата, который игнорируется в .NET Framework 3.5 и более ранних версиях.


TimeSpan interval = new TimeSpan(12, 30, 45);
string output;
try {
   output = String.Format("{0:r}", interval);
}
catch (FormatException) {
   output = "Invalid Format";
}
Console.WriteLine(output);
// Output from .NET Framework 3.5 and earlier versions:
//       12:30:45
// Output from .NET Framework 4:
//       Invalid Format


Если не удается изменить код, можно восстановить, устаревший формат значений TimeSpan одним из следующих способов:

  • Путем создания файла конфигурации, содержащего элемент < TimeSpan_LegacyFormatMode >. Установка для атрибута этого элемента enabled значения true восстанавливает устаревшее форматирование TimeSpan на основе каждого приложения.

  • Установив «NetFx40_TimeSpanLegacyFormatMode» переключатель совместимости при создании домена приложения. Это обеспечивает использование устаревшей версии форматирования TimeSpan на уровне домена приложения. В следующем примере создается домен приложения, использующего устаревшее форматирование TimeSpan.

    
    using System;
    
    public class Example
    {
       public static void Main()
       {
          AppDomainSetup appSetup = new AppDomainSetup();
          appSetup.SetCompatibilitySwitches( new string[] { "NetFx40_TimeSpanLegacyFormatMode" } );
          AppDomain legacyDomain = AppDomain.CreateDomain("legacyDomain", 
                                                          null, appSetup);
          legacyDomain.ExecuteAssembly("ShowTimeSpan.exe");
       }
    }
    
    
    

    Когда следующий код выполняется в новом домене приложения, он возвращается к традиционному поведению форматирования TimeSpan.

    
    using System;
    
    public class Example
    {
       public static void Main()
       {
          TimeSpan interval = DateTime.Now - DateTime.Now.Date;
          string msg = String.Format("Elapsed Time Today: {0:d} hours.",
                                     interval);
          Console.WriteLine(msg);
       }
    }
    // The example displays the following output:
    //       Elapsed Time Today: 01:40:52.2524662 hours.
    
    
    

В следующем примере создается экземпляр объекта TimeSpan, представляющего разницу между двумя датами. Затем отображает свойства объекта TimeSpan.


// Define two dates.
DateTime date1 = new DateTime(2010, 1, 1, 8, 0, 15);
DateTime date2 = new DateTime(2010, 8, 18, 13, 30, 30);
// Calculate the interval between the two dates.
TimeSpan interval = date2 - date1;
Console.WriteLine("{0} - {1} = {2}", date2, date1, interval.ToString());
// Display individual properties of the resulting TimeSpan object.
Console.WriteLine("   {0,-35} {1,20}", "Value of Days Component:", interval.Days);
Console.WriteLine("   {0,-35} {1,20}", "Total Number of Days:", interval.TotalDays);
Console.WriteLine("   {0,-35} {1,20}", "Value of Hours Component:", interval.Hours);
Console.WriteLine("   {0,-35} {1,20}", "Total Number of Hours:", interval.TotalHours);
Console.WriteLine("   {0,-35} {1,20}", "Value of Minutes Component:", interval.Minutes);
Console.WriteLine("   {0,-35} {1,20}", "Total Number of Minutes:", interval.TotalMinutes);
Console.WriteLine("   {0,-35} {1,20:N0}", "Value of Seconds Component:", interval.Seconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Total Number of Seconds:", interval.TotalSeconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Value of Milliseconds Component:", interval.Milliseconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Total Number of Milliseconds:", interval.TotalMilliseconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Ticks:", interval.Ticks);
// the example displays the following output:
//       8/18/2010 1:30:30 PM - 1/1/2010 8:00:15 AM = 229.05:30:15
//          Value of Days Component:                             229
//          Total Number of Days:                   229.229340277778
//          Value of Hours Component:                              5
//          Total Number of Hours:                  5501.50416666667
//          Value of Minutes Component:                           30
//          Total Number of Minutes:                       330090.25
//          Value of Seconds Component:                           15
//          Total Number of Seconds:                      19,805,415
//          Value of Milliseconds Component:                       0
//          Total Number of Milliseconds:             19,805,415,000
//          Ticks:                               198,054,150,000,000


.NET Framework

Поддерживается в версиях: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework (клиентский профиль)

Поддерживается в версиях: 4, 3.5 с пакетом обновления 1 (SP1)

Переносимая библиотека классов

Поддерживается в версии: Переносимая библиотека классов

Приложения .NET для Магазина Windows

Поддерживается в версии: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)

Среда .NET Framework поддерживает не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.
Любые открытые static (Shared в Visual Basic) члены этого типа являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.
Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2014 Microsoft. Все права защищены.