TimeSpan Структура
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет интервал времени.
public value class TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IFormattable
public value class TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, ISpanFormattable
public value class TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IParsable<TimeSpan>, ISpanFormattable, ISpanParsable<TimeSpan>
public value class TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IParsable<TimeSpan>, ISpanFormattable, ISpanParsable<TimeSpan>, IUtf8SpanFormattable
public value class TimeSpan : IComparable
public value class TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>
public struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IFormattable
public readonly struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IFormattable
public readonly struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, ISpanFormattable
public readonly struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IParsable<TimeSpan>, ISpanFormattable, ISpanParsable<TimeSpan>
public readonly struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IParsable<TimeSpan>, ISpanFormattable, ISpanParsable<TimeSpan>, IUtf8SpanFormattable
[System.Serializable]
public struct TimeSpan : IComparable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IFormattable
type TimeSpan = struct
interface IFormattable
type TimeSpan = struct
interface ISpanFormattable
interface IFormattable
type TimeSpan = struct
interface IFormattable
interface IParsable<TimeSpan>
interface ISpanFormattable
interface ISpanParsable<TimeSpan>
type TimeSpan = struct
interface IFormattable
interface IParsable<TimeSpan>
interface ISpanFormattable
interface ISpanParsable<TimeSpan>
interface IUtf8SpanFormattable
[<System.Serializable>]
type TimeSpan = struct
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TimeSpan = struct
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TimeSpan = struct
interface IFormattable
Public Structure TimeSpan
Implements IComparable, IComparable(Of TimeSpan), IEquatable(Of TimeSpan), IFormattable
Public Structure TimeSpan
Implements IComparable, IComparable(Of TimeSpan), IEquatable(Of TimeSpan), ISpanFormattable
Public Structure TimeSpan
Implements IComparable, IComparable(Of TimeSpan), IEquatable(Of TimeSpan), IParsable(Of TimeSpan), ISpanFormattable, ISpanParsable(Of TimeSpan)
Public Structure TimeSpan
Implements IComparable, IComparable(Of TimeSpan), IEquatable(Of TimeSpan), IParsable(Of TimeSpan), ISpanFormattable, ISpanParsable(Of TimeSpan), IUtf8SpanFormattable
Public Structure TimeSpan
Implements IComparable
Public Structure TimeSpan
Implements IComparable, IComparable(Of TimeSpan), IEquatable(Of TimeSpan)
- Наследование
- Атрибуты
- Реализации
Примеры
В следующем примере создается 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);
// This 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
// Define two dates.
let date1 = DateTime(2010, 1, 1, 8, 0, 15)
let date2 = DateTime(2010, 8, 18, 13, 30, 30)
// Calculate the interval between the two dates.
let interval = date2 - date1
printfn $"{date2} - {date1} = {interval}"
// Display individual properties of the resulting TimeSpan object.
printfn $""" {"Value of Days Component:",-35} {interval.Days,20}"""
printfn $""" {"Total Number of Days:",-35} {interval.TotalDays,20}"""
printfn $""" {"Value of Hours Component:",-35} {interval.Hours,20}"""
printfn $""" {"Total Number of Hours:",-35} {interval.TotalHours,20}"""
printfn $""" {"Value of Minutes Component:",-35} {interval.Minutes,20}"""
printfn $""" {"Total Number of Minutes:",-35} {interval.TotalMinutes,20}"""
printfn $""" {"Value of Seconds Component:",-35} {interval.Seconds,20:N0}"""
printfn $""" {"Total Number of Seconds:",-35} {interval.TotalSeconds,20:N0}"""
printfn $""" {"Value of Milliseconds Component:",-35} {interval.Milliseconds,20:N0}"""
printfn $""" {"Total Number of Milliseconds:",-35} {interval.TotalMilliseconds,20:N0}"""
printfn $""" {"Ticks:",-35} {interval.Ticks,20:N0}"""
// This 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
' Define two dates.
Dim date1 As Date = #1/1/2010 8:00:15AM#
Dim date2 As Date = #8/18/2010 1:30:30PM#
' Calculate the interval between the two dates.
Dim interval As TimeSpan = 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
# Define two dates.
$Date2 = Get-Date -Date '2010/8/18' -Hour 13 -Minute 30 -Second 30
$Date1 = Get-Date -Date '2010/1/1' -Hour 8 -Minute 0 -Second 15
# Calculate the interval between the two dates.
$Interval = $Date2 - $Date1
"{0} - {1} = {2}" -f $Date2, $Date1, ($Interval.ToString())
# Display individual properties of the resulting TimeSpan object.
" {0,-35} {1,20}" -f "Value of Days Component:", $Interval.Days
" {0,-35} {1,20}" -f "Total Number of Days:", $Interval.TotalDays
" {0,-35} {1,20}" -f "Value of Hours Component:", $Interval.Hours
" {0,-35} {1,20}" -f "Total Number of Hours:", $Interval.TotalHours
" {0,-35} {1,20}" -f "Value of Minutes Component:", $Interval.Minutes
" {0,-35} {1,20}" -f "Total Number of Minutes:", $Interval.TotalMinutes
" {0,-35} {1,20:N0}" -f "Value of Seconds Component:", $Interval.Seconds
" {0,-35} {1,20:N0}" -f "Total Number of Seconds:", $Interval.TotalSeconds
" {0,-35} {1,20:N0}" -f "Value of Milliseconds Component:", $Interval.Milliseconds
" {0,-35} {1,20:N0}" -f "Total Number of Milliseconds:", $Interval.TotalMilliseconds
" {0,-35} {1,20:N0}" -f "Ticks:", $Interval.Ticks
<# This sample produces the following output:
18/08/2010 13:30:30 - 01/01/2010 08:00:15 = 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
#>
Комментарии
Объект TimeSpan представляет интервал времени (длительность времени или затраченного времени), измеряемый как положительное или отрицательное число дней, часов, минут, секунд и долей секунды. Структура TimeSpan также может использоваться для представления времени суток, но только в том случае, если время не связано с определенной датой. В противном случае вместо него следует использовать структуру DateTime или DateTimeOffset . (Дополнительные сведения об использовании TimeSpan структуры для отражения времени суток см. в разделе Выбор между DateTime, DateTimeOffset, TimeSpan и TimeZoneInfo.)
Примечание
Значение TimeSpan представляет интервал времени и может быть выражено в виде определенного количества дней, часов, минут, секунд и миллисекунд. Поскольку он представляет общий интервал без ссылки на конкретную начальную или конечную точку, его нельзя выразить в годах и месяцах, оба из которых имеют переменное количество дней. Он отличается от DateTime значения, представляющего дату и время без ссылки на определенный часовой пояс, или DateTimeOffset от значения, представляющего определенный момент времени.
Самая большая единица времени, используемая структурой TimeSpan для измерения длительности, — день. Интервалы времени измеряются в днях для обеспечения согласованности, так как количество дней в больших единицах времени, таких как месяцы и годы, меняется.
Значение TimeSpan объекта — это количество тактов, равное представленному интервалу времени. Тик равен 100 наносекундам, или одной десятимиллионовой части секунды. Значение TimeSpan объекта может варьироваться от TimeSpan.MinValue до TimeSpan.MaxValue.
Создание экземпляра значения TimeSpan
Создать экземпляр TimeSpan значения можно несколькими способами:
Путем вызова его неявного конструктора без параметров. При этом создается объект со значением TimeSpan.Zero, как показано в следующем примере.
TimeSpan interval = new TimeSpan(); Console.WriteLine(interval.Equals(TimeSpan.Zero)); // Displays "True".
let interval = TimeSpan() printfn $"{interval.Equals TimeSpan.Zero}" // Displays "True".
Dim interval As 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".
let interval = TimeSpan(2, 14, 18) printfn $"{interval}" // Displays "02:14:18".
Dim interval As 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
let departure = DateTime(2010, 6, 12, 18, 32, 0) let arrival = DateTime(2010, 6, 13, 22, 47, 0) let travelTime = arrival - departure printfn $"{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
Dim departure As DateTime = #06/12/2010 6:32PM# Dim arrival As DateTime = #06/13/2010 10:47PM# Dim travelTime As TimeSpan = 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 объект до нулевого значения времени, как показано в следующем примере.
Random rnd = new Random(); TimeSpan timeSpent = TimeSpan.Zero; timeSpent += GetTimeBeforeLunch(); timeSpent += GetTimeAfterLunch(); Console.WriteLine("Total time: {0}", timeSpent); TimeSpan GetTimeBeforeLunch() { return new TimeSpan(rnd.Next(3, 6), 0, 0); } TimeSpan GetTimeAfterLunch() { return new TimeSpan(rnd.Next(3, 6), 0, 0); } // The example displays output like the following: // Total time: 08:00:00
open System let rnd = Random() let getTimeBeforeLunch () = TimeSpan(rnd.Next(3, 6), 0, 0) let getTimeAfterLunch() = TimeSpan(rnd.Next(3, 6), 0, 0) do let timeSpent = TimeSpan.Zero let timeSpent = timeSpent + getTimeBeforeLunch () let timeSpent = timeSpent + getTimeAfterLunch () printfn $"Total time: {timeSpent}" // The example displays output like the following: // Total time: 08:00:00
Module Example Dim rnd As New Random() Public Sub Main() Dim timeSpent As TimeSpan = TimeSpan.Zero timeSpent += GetTimeBeforeLunch() timeSpent += GetTimeAfterLunch() Console.WriteLine("Total time: {0}", timeSpent) End Sub Private Function GetTimeBeforeLunch() As TimeSpan Return New TimeSpan(rnd.Next(3, 6), 0, 0) End Function Private Function GetTimeAfterLunch() As TimeSpan Return New TimeSpan(rnd.Next(3, 6), 0, 0) End Function End Module ' The example displays output like the following: ' Total time: 08:00:00
TimeSpan значения возвращаются арифметическими операторами и методами DateTimeструктур , DateTimeOffsetи TimeSpan .
Путем анализа строкового TimeSpan представления значения. Методы Parse и TryParse можно использовать для преобразования строк, содержащих интервалы времени, в TimeSpan значения. В следующем примере метод используется Parse для преобразования массива строк в TimeSpan значения.
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'
let values = [| "12"; "31."; "5.8:32:16"; "12:12:15.95"; ".12" |] for value in values do try let ts = TimeSpan.Parse value printfn $"'{value}' --> {ts}" with | :? FormatException -> printfn $"Unable to parse '{value}'" | :? OverflowException -> printfn $"'{value}' is outside the range of a TimeSpan." // 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'
Dim values() As String = { "12", "31.", "5.8:32:16", "12:12:15.95", ".12"} For Each value As String In values Try Dim ts As TimeSpan = TimeSpan.Parse(value) Console.WriteLine("'{0}' --> {1}", value, ts) Catch e As FormatException Console.WriteLine("Unable to parse '{0}'", value) Catch e As OverflowException Console.WriteLine("'{0}' is outside the range of a TimeSpan.", value) End Try Next ' 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 — MinValueMaxValue.
Форматирование значения TimeSpan
Значение TimeSpan может быть представлено как [-]d. чч:мм:сс. ff, где необязательный знак минус указывает на отрицательный интервал времени, компонент d — дни, чч — часы, измеренные на 24-часовых часах, мм — минуты, ss — секунды, а ff — доли секунды. То есть интервал времени состоит из положительного или отрицательного числа дней без времени суток, или числа дней с временем суток или только времени суток.
Начиная с платформа .NET Framework 4, TimeSpan структура поддерживает форматирование с учетом TimeSpan языка и региональных параметров через перегрузки метода ToString , который преобразует значение в строковое представление. Метод по умолчанию TimeSpan.ToString() возвращает интервал времени с использованием инвариантного формата, идентичного значению, возвращаемого в предыдущих версиях платформа .NET Framework. Перегрузка TimeSpan.ToString(String) позволяет указать строку формата, которая определяет строковое представление интервала времени. Перегрузка TimeSpan.ToString(String, IFormatProvider) позволяет указать строку формата и язык и региональные параметры, соглашения о форматировании которых используются для создания строкового представления интервала времени. TimeSpan поддерживает как строки стандартного, так и пользовательского формата. (Дополнительные сведения см. в разделах Стандартные строки формата TimeSpan и Настраиваемые строки формата TimeSpan.) Однако только строки стандартного формата чувствительны к языку и региональным параметрам.
Восстановление устаревшего форматирования TimeSpan
В некоторых случаях код, который успешно форматирует TimeSpan значения в платформа .NET Framework 3.5 и более ранних версиях, завершается сбоем в платформа .NET Framework 4. Чаще всего это происходит в коде<, который вызывает метод элемента TimeSpan_LegacyFormatMode> для форматирования TimeSpan значения с помощью строки форматирования. Следующий пример успешно форматирует TimeSpan значение в платформа .NET Framework 3.5 и более ранних версий, но вызывает исключение в платформа .NET Framework 4 и более поздних версиях. Обратите внимание, что он пытается отформатировать TimeSpan значение с помощью неподдерживаемого описателя формата, который игнорируется в платформа .NET Framework 3.5 и более ранних версиях.
ShowFormattingCode();
// Output from .NET Framework 3.5 and earlier versions:
// 12:30:45
// Output from .NET Framework 4:
// Invalid Format
Console.WriteLine("---");
ShowParsingCode();
// Output:
// 000000006 --> 6.00:00:00
void ShowFormattingCode()
{
TimeSpan interval = new TimeSpan(12, 30, 45);
string output;
try {
output = String.Format("{0:r}", interval);
}
catch (FormatException) {
output = "Invalid Format";
}
Console.WriteLine(output);
}
void ShowParsingCode()
{
string value = "000000006";
try {
TimeSpan interval = TimeSpan.Parse(value);
Console.WriteLine("{0} --> {1}", value, interval);
}
catch (FormatException) {
Console.WriteLine("{0}: Bad Format", value);
}
catch (OverflowException) {
Console.WriteLine("{0}: Overflow", value);
}
}
let showFormattingCode () =
let interval = TimeSpan(12, 30, 45)
try
$"{interval:r}"
with :? FormatException ->
"Invalid Format"
|> printfn "%s"
let showParsingCode () =
let value = "000000006"
try
let interval = TimeSpan.Parse value
printfn $"{value} --> {interval}"
with
| :? FormatException ->
printfn $"{value}: Bad Format"
| :? OverflowException ->
printfn $"{value}: Overflow"
showFormattingCode ()
// Output from .NET Framework 3.5 and earlier versions:
// 12:30:45
// Output from .NET Framework 4:
// Invalid Format
printfn "---"
showParsingCode ()
// Output:
// 000000006 --> 6.00:00:00
Dim interval As New TimeSpan(12, 30, 45)
Dim output As String
Try
output = String.Format("{0:r}", interval)
Catch e As FormatException
output = "Invalid Format"
End Try
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"); } }
open System let appSetup = AppDomainSetup() appSetup.SetCompatibilitySwitches [| "NetFx40_TimeSpanLegacyFormatMode" |] let legacyDomain = AppDomain.CreateDomain("legacyDomain", null, appSetup) legacyDomain.ExecuteAssembly "ShowTimeSpan.exe" |> ignore
Module Example Public Sub Main() Dim appSetup As New AppDomainSetup() appSetup.SetCompatibilitySwitches( { "NetFx40_TimeSpanLegacyFormatMode" } ) Dim legacyDomain As AppDomain = AppDomain.CreateDomain("legacyDomain", Nothing, appSetup) legacyDomain.ExecuteAssembly("ShowTimeSpan.exe") End Sub End Module
Когда следующий код выполняется в новом домене приложения, он возвращается к устаревшему 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.
open System let interval = DateTime.Now - DateTime.Now.Date printfn $"Elapsed Time Today: {interval:d} hours." // The example displays the following output: // Elapsed Time Today: 01:40:52.2524662 hours.
Module Example Public Sub Main() Dim interval As TimeSpan = Date.Now - Date.Now.Date Dim msg As String = String.Format("Elapsed Time Today: {0:d} hours.", interval) Console.WriteLine(msg) End Sub End Module ' The example displays output like the following: ' Elapsed Time Today: 01:40:52.2524662 hours.
Конструкторы
TimeSpan(Int32, Int32, Int32) |
Инициализирует новый экземпляр структуры TimeSpan заданным количеством часов, минут и секунд. |
TimeSpan(Int32, Int32, Int32, Int32) |
Инициализирует новый экземпляр структуры TimeSpan заданным количеством дней, часов, минут и секунд. |
TimeSpan(Int32, Int32, Int32, Int32, Int32) |
Инициализирует новый экземпляр структуры TimeSpan заданным количеством дней, часов, минут, секунд и миллисекунд. |
TimeSpan(Int32, Int32, Int32, Int32, Int32, Int32) |
Инициализирует новый экземпляр TimeSpan структуры указанным числом дней, часов, минут, секунд, миллисекунд и микросекунд. |
TimeSpan(Int64) |
Инициализирует новый экземпляр структуры TimeSpan заданным числом тактов. |
Поля
MaxValue |
Представляет максимальное значение TimeSpan. Это поле доступно только для чтения. |
MinValue |
Представляет минимальное значение TimeSpan. Это поле доступно только для чтения. |
NanosecondsPerTick |
Представляет число наносекунд на тик. Это поле является константой. |
TicksPerDay |
Возвращает количество тактов в 1 сутках. Это поле является константой. |
TicksPerHour |
Представляет количество тактов в 1 часе. Это поле является константой. |
TicksPerMicrosecond |
Представляет количество тактов в 1 микросекундах. Это поле является константой. |
TicksPerMillisecond |
Возвращает количество тактов в 1 миллисекунде. Это поле является константой. |
TicksPerMinute |
Возвращает количество тактов в 1 минуте. Это поле является константой. |
TicksPerSecond |
Возвращает количество тактов в 1 секунде. |
Zero |
Представляет нулевое значение TimeSpan. Это поле доступно только для чтения. |
Свойства
Days |
Возвращает компонент дней периода времени, представленного текущей структурой TimeSpan. |
Hours |
Возвращает компонент часов периода времени, представленного текущей структурой TimeSpan. |
Microseconds |
Возвращает компонент микросекунд интервала времени, представленного текущей TimeSpan структурой. |
Milliseconds |
Возвращает компонент миллисекунд периода времени, представленного текущей структурой TimeSpan. |
Minutes |
Возвращает компонент минут периода времени, представленного текущей структурой TimeSpan. |
Nanoseconds |
Возвращает компонент наносекунд интервала времени, представленного текущей TimeSpan структурой. |
Seconds |
Возвращает компонент секунд периода времени, представленного текущей структурой TimeSpan. |
Ticks |
Возвращает количество тактов, представляющее значение текущей структуры TimeSpan. |
TotalDays |
Возвращает значение текущей структуры TimeSpan, выраженное как целое и дробное количество дней. |
TotalHours |
Получает значение текущей структуры TimeSpan, выраженное как целое и дробное количество часов. |
TotalMicroseconds |
Возвращает значение текущей TimeSpan структуры, выраженное в целых и дробных микросекундах. |
TotalMilliseconds |
Получает значение текущей структуры TimeSpan, выраженное как целое и дробное количество миллисекунд. |
TotalMinutes |
Возвращает значение текущей структуры TimeSpan, выраженное как целое и дробное количество минут. |
TotalNanoseconds |
Возвращает значение текущей TimeSpan структуры, выраженное в целых и дробных наносекундах. |
TotalSeconds |
Возвращает значение текущей структуры TimeSpan, выраженное как целое и дробное количество секунд. |
Методы
Add(TimeSpan) |
Возвращает новый объект TimeSpan, значение которого равно сумме указанного объекта TimeSpan и данного экземпляра. |
Compare(TimeSpan, TimeSpan) |
Сравнивает два значения TimeSpan и возвращает целое значение, которое показывает, является ли первое значение короче, равно или длиннее второго значения. |
CompareTo(Object) |
Сравнивает данный экземпляр с указанным объектом и возвращает целое число, которое показывает, как соотносится данный экземпляр с указанным объектом: короче него, равен ему или длиннее указанного объекта. |
CompareTo(TimeSpan) |
Сравнивает данный экземпляр с указанным объектом TimeSpan и возвращает целое число, которое показывает, как соотносится данный экземпляр с объектом TimeSpan: короче него, равен ему или длиннее указанного объекта. |
Divide(Double) |
Возвращает новый объект TimeSpan, значение которого является результатом деления данного экземпляра и указанного |
Divide(TimeSpan) |
Возвращает новое значение Double, которое является результатом деления данного экземпляра и указанного |
Duration() |
Возвращает новый объект TimeSpan, значением которого является абсолютное значение текущего объекта TimeSpan. |
Equals(Object) |
Возвращает значение, показывающее, равен ли данный экземпляр заданному объекту. |
Equals(TimeSpan) |
Возвращает значение, указывающее, равен ли данный экземпляр заданному объекту TimeSpan. |
Equals(TimeSpan, TimeSpan) |
Возвращает значение, указывающее, равны ли два заданных экземпляра TimeSpan. |
FromDays(Double) |
Возвращает объект TimeSpan, представляющий заданное количество дней, округленное до ближайшей миллисекунды. |
FromHours(Double) |
Возвращает объект TimeSpan, представляющий указанное количество часов, округленное до ближайшей миллисекунды. |
FromMicroseconds(Double) |
Возвращает объект , TimeSpan представляющий указанное количество микросекунд. |
FromMilliseconds(Double) |
Возвращает объект TimeSpan, представляющий указанное количество миллисекунд. |
FromMinutes(Double) |
Возвращает объект TimeSpan, представляющий указанное количество минут, округленное до ближайшей миллисекунды. |
FromSeconds(Double) |
Возвращает объект TimeSpan, представляющий указанное количество секунд, округленное до ближайшей миллисекунды. |
FromTicks(Int64) |
Возвращает объект TimeSpan, представляющий заданное время в тактах. |
GetHashCode() |
Возвращает хэш-код для данного экземпляра. |
Multiply(Double) |
Возвращает новый объект TimeSpan, значение которого является результатом умножения данного экземпляра и указанного |
Negate() |
Возвращает новый объект TimeSpan, значение которого равно значению данного экземпляра с противоположным знаком. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Преобразует представление диапазона интервала времени в его эквивалент TimeSpan, используя указанные сведения о форматировании, связанные с языком и региональными параметрами. |
Parse(String) |
Преобразует строковое представление интервала времени в его эквивалент TimeSpan. |
Parse(String, IFormatProvider) |
Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные сведения о форматировании, связанные с языком и региональными параметрами. |
ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, TimeSpanStyles) |
Преобразует диапазон символов интервала времени в его эквивалент TimeSpan, используя указанные формат и сведения о форматировании, связанные с языком и региональными параметрами. Формат строкового представления должен полностью соответствовать заданному формату. |
ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, TimeSpanStyles) |
Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные форматы, сведения о форматировании, связанные с языком и региональными параметрами, и стили. Формат строкового представления должен полностью соответствовать одному из заданных форматов. |
ParseExact(String, String, IFormatProvider) |
Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные формат и сведения о форматировании, связанные с языком и региональными параметрами. Формат строкового представления должен полностью соответствовать заданному формату. |
ParseExact(String, String, IFormatProvider, TimeSpanStyles) |
Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные формат, сведения о форматировании, связанные с языком и региональными параметрами, и стили. Формат строкового представления должен полностью соответствовать заданному формату. |
ParseExact(String, String[], IFormatProvider) |
Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанный массив строк форматирования и сведения о форматировании, связанные с языком и региональными параметрами. Формат строкового представления должен полностью соответствовать одному из заданных форматов. |
ParseExact(String, String[], IFormatProvider, TimeSpanStyles) |
Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные форматы, сведения о форматировании, связанные с языком и региональными параметрами, и стили. Формат строкового представления должен полностью соответствовать одному из заданных форматов. |
Subtract(TimeSpan) |
Возвращает новый объект TimeSpan, значение которого равно разности между указанным объектом TimeSpan и данным экземпляром. |
ToString() |
Преобразует значение текущего объекта TimeSpan в эквивалентное ему строковое представление. |
ToString(String) |
Преобразует значение текущего объекта TimeSpan в эквивалентное ему строковое представление с использованием заданного формата. |
ToString(String, IFormatProvider) |
Преобразует числовое значение текущего объекта TimeSpan в эквивалентное ему строковое представление с использованием указанного формата и сведений об особенностях форматирования для данного языка и региональных параметров. |
TryFormat(Span<Byte>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
Представляет интервал времени. |
TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
Пытается форматировать значение текущего экземпляра числа временного диапазона в указанный диапазон символов. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, TimeSpan) |
Преобразует представление диапазона интервала времени в его эквивалент TimeSpan, используя указанную информацию о форматировании, связанную с языком и региональными параметрами, и возвращает значение, которое показывает успешность преобразования. |
TryParse(ReadOnlySpan<Char>, TimeSpan) |
Преобразует представление диапазона интервала времени в его эквивалент TimeSpan и возвращает значение, позволяющее определить успешность преобразования. |
TryParse(String, IFormatProvider, TimeSpan) |
Преобразовывает заданное строковое представление интервала времени в его эквивалент TimeSpan, используя указанную информацию о форматировании, связанную с языком и региональными параметрами, и возвращает значение, которое показывает успешность преобразования. |
TryParse(String, TimeSpan) |
Преобразовывает строковое представление интервала времени в его эквивалент TimeSpan и возвращает значение, позволяющее определить успешность преобразования. |
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, TimeSpan) |
Преобразует указанное представление диапазона интервала времени в его эквивалент TimeSpan, используя указанные формат и сведения о форматировании, связанные с языком и региональными параметрами. Формат строкового представления должен полностью соответствовать заданному формату. |
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, TimeSpanStyles, TimeSpan) |
Преобразует заданное представление диапазона интервала времени в его эквивалент TimeSpan, используя указанные форматы, информацию о форматировании, связанную с языком и региональными параметрами, и стили, и возвращает значение, которое показывает успешность преобразования. Формат строкового представления должен полностью соответствовать заданному формату. |
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, TimeSpan) |
Преобразует указанное представление диапазона интервала времени в его эквивалент TimeSpan, используя указанные форматы и сведения о форматировании, связанные с языком и региональными параметрами. Формат строкового представления должен полностью соответствовать одному из заданных форматов. |
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, TimeSpanStyles, TimeSpan) |
Преобразует указанное представление диапазона интервала времени в его эквивалент TimeSpan, используя указанные форматы, сведения о форматировании, связанные с языком и региональными параметрами, и стили. Формат строкового представления должен полностью соответствовать одному из заданных форматов. |
TryParseExact(String, String, IFormatProvider, TimeSpan) |
Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные формат и сведения о форматировании, связанные с языком и региональными параметрами. Формат строкового представления должен полностью соответствовать заданному формату. |
TryParseExact(String, String, IFormatProvider, TimeSpanStyles, TimeSpan) |
Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные формат, сведения о форматировании, связанные с языком и региональными параметрами, и стили. Формат строкового представления должен полностью соответствовать заданному формату. |
TryParseExact(String, String[], IFormatProvider, TimeSpan) |
Преобразует указанное строковое представление интервала времени в его эквивалент TimeSpan, используя указанные форматы и сведения о форматировании, связанные с языком и региональными параметрами. Формат строкового представления должен полностью соответствовать одному из заданных форматов. |
TryParseExact(String, String[], IFormatProvider, TimeSpanStyles, TimeSpan) |
Преобразует указанное строковое представление интервала времени в его эквивалент TimeSpan, используя указанные форматы, сведения о форматировании, связанные с языком и региональными параметрами, и стили. Формат строкового представления должен полностью соответствовать одному из заданных форматов. |
Операторы
Addition(TimeSpan, TimeSpan) |
Складывает два указанных экземпляра TimeSpan. |
Division(TimeSpan, Double) |
Возвращает новый объект TimeSpan, значение которого является результатом деления экземпляра |
Division(TimeSpan, TimeSpan) |
Возвращает новое значение Double, которое является результатом деления экземпляра |
Equality(TimeSpan, TimeSpan) |
Указывает, равны ли два экземпляра TimeSpan. |
GreaterThan(TimeSpan, TimeSpan) |
Показывает, является ли заданное значение TimeSpan большим, чем другое заданное значение TimeSpan. |
GreaterThanOrEqual(TimeSpan, TimeSpan) |
Показывает, является ли заданное значение TimeSpan большим или равным другому заданному значению TimeSpan. |
Inequality(TimeSpan, TimeSpan) |
Показывает, являются ли два экземпляра TimeSpan неравными. |
LessThan(TimeSpan, TimeSpan) |
Показывает, является ли заданное значение TimeSpan меньшим, чем другое заданное значение TimeSpan. |
LessThanOrEqual(TimeSpan, TimeSpan) |
Показывает, является ли заданное значение TimeSpan меньшим или равным другому заданному значению TimeSpan. |
Multiply(Double, TimeSpan) |
Возвращает новый объект TimeSpan, значение которого является результатом умножения указанного |
Multiply(TimeSpan, Double) |
Возвращает новый объект TimeSpan, значение которого является результатом умножения указанного экземпляра |
Subtraction(TimeSpan, TimeSpan) |
Вычитает указанный объект TimeSpan из другого указанного объекта TimeSpan. |
UnaryNegation(TimeSpan) |
Возвращает объект TimeSpan со значением, равным значению данного экземпляра с противоположным знаком. |
UnaryPlus(TimeSpan) |
Возвращает указанный экземпляр TimeSpan. |
Явные реализации интерфейса
IComparable.CompareTo(Object) |
Сравнивает данный экземпляр с указанным объектом и возвращает целое число, которое показывает, как соотносится данный экземпляр с указанным объектом: короче него, равен ему или длиннее указанного объекта. |