TimeSpan 構造体
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
時間間隔を表します。
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 2 つの日付の違いを表す オブジェクトをインスタンス化します。 その後、オブジェクトのプロパティが 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 の選択」を参照してください)。
Note
値は TimeSpan 時間間隔を表し、特定の日数、時間、分、秒、ミリ秒として表すことができます。 特定の始点または終点を参照せずに一般的な間隔を表すので、年と月の観点から表すことはできません。どちらも日数が可変です。 これは、特定の DateTime タイム ゾーンを参照しない日付と時刻を表す値、または特定の時刻の瞬間を DateTimeOffset 表す値とは異なります。
構造体が期間を測定するために使用する TimeSpan 最大の時間単位は 1 日です。 時間間隔は、月や年など、より大きな時間単位の日数が異なるため、一貫性のために日数で測定されます。
オブジェクトの TimeSpan 値は、表される時間間隔と等しいティック数です。 ティックは 100 ナノ秒、つまり 1 秒の 1,1000 万分の 1 に等しくなります。 オブジェクトの 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 実行します。 たとえば、次の例に示すように、2 つの日付と時刻の値の間隔を表す値をインスタンス化 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値は、、、および TimeSpan 構造体のDateTimeDateTimeOffset算術演算子とメソッドによって返されます。
値の文字列表現 TimeSpan を解析します。 メソッドと TryParse メソッドをParse使用すると、時間間隔を含む文字列を値に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'
さらに、 メソッドまたは TryParseExact メソッドを呼び出すことで、解析して値に変換する入力文字列の正確なTimeSpan形式をParseExact定義できます。
TimeSpan 値に対する操作の実行
と 演算子を使用AdditionSubtractionするか、 メソッドと メソッドを呼び出して、時間の期間をAddSubtract加算および減算できます。 、、および メソッドを呼び出CompareCompareToすことで、2 つの期間をEquals比較することもできます。 構造体TimeSpanには、 メソッドと Negate メソッドも含まれておりDuration、時間間隔を正の値と負の値に変換します。
値のTimeSpan範囲は ですMinValueMaxValue。
TimeSpan 値の書式設定
値は TimeSpan [-]d として表すことができます。hh:mm:ss。ff。省略可能なマイナス記号は負の時間間隔を示し、 d 成分は日、 hh は 24 時間制で測定される時間、 mm は分、 ss は秒、 ff は秒の分数です。 つまり、時間間隔は、時刻のない正または負の日数、または 1 日の時刻を含む日数、または 1 日の時刻のみで構成されます。
.NET Framework 4 以降では、 TimeSpan 構造体はメソッドのToStringオーバーロードを使用してカルチャに依存する書式設定をサポートし、値を文字列表現に変換TimeSpanします。 既定TimeSpan.ToString()のメソッドは、以前のバージョンの.NET Frameworkの戻り値と同じインバリアント形式を使用して時間間隔を返します。 TimeSpan.ToString(String)オーバーロードを使用すると、時間間隔の文字列表現を定義する書式指定文字列を指定できます。 TimeSpan.ToString(String, IFormatProvider)オーバーロードを使用すると、時間間隔の文字列表現を作成するために書式設定規則を使用する書式指定文字列とカルチャを指定できます。 TimeSpan では、標準書式指定文字列とカスタム書式指定文字列の両方がサポートされます。 (詳細については、「 標準の TimeSpan 書式指定文字列 」および「 カスタム TimeSpan 書式指定文字列」を参照してください)。ただし、カルチャに依存するのは標準の書式指定文字列のみです。
従来の TimeSpan 書式設定の復元
.NET Framework 4 では、.NET Framework 3.5 以前のバージョンの値の書式設定TimeSpanに成功したコードが失敗する場合があります。 これは、TimeSpan_LegacyFormatMode>要素メソッドを<呼び出して書式指定文字列を使用して値をTimeSpan書式設定するコードで最も一般的です。 次の例では、.NET Framework 3.5 以前のバージョンの値が正常に書式設定TimeSpanされますが、.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 |
0 の TimeSpan 値を表します。 このフィールドは読み取り専用です。 |
プロパティ
Days |
現在の TimeSpan 構造体によって表される時間間隔の日要素を取得します。 |
Hours |
現在の TimeSpan 構造体が表す時間間隔の時間の部分を取得します。 |
Microseconds |
現在 TimeSpan の構造体で表される時間間隔のマイクロ秒単位のコンポーネントを取得します。 |
Milliseconds |
現在の TimeSpan 構造体が表す時間間隔のミリ秒の部分を取得します。 |
Minutes |
現在の TimeSpan 構造体が表す時間間隔の分の部分を取得します。 |
Nanoseconds |
現在 TimeSpan の構造体で表される時間間隔の nanoseconds コンポーネントを取得します。 |
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) |
2 つの TimeSpan 値を比較し、第 1 の値が第 2 の値よりも短いか、同じか、または長いかを示す整数を返します。 |
CompareTo(Object) |
このインスタンスと指定したオブジェクトを比較し、このインスタンスが指定したオブジェクトよりも短いか、同じか、または長いかを示す整数を返します。 |
CompareTo(TimeSpan) |
このインスタンスと指定した TimeSpan オブジェクトを比較し、このインスタンスが指定した TimeSpan オブジェクトよりも短いか、同じか、または長いかを示す整数を返します。 |
Divide(Double) |
このインスタンスと指定した |
Divide(TimeSpan) |
このインスタンスと指定した |
Duration() | |
Equals(Object) |
このインスタンスが指定されたオブジェクトに等しいかどうかを示す値を返します。 |
Equals(TimeSpan) |
対象のインスタンスが、指定した TimeSpan オブジェクトに等しいかどうかを示す値を返します。 |
Equals(TimeSpan, TimeSpan) |
TimeSpan の指定した 2 つのインスタンスが等しいかどうかを示す値を返します。 |
FromDays(Double) |
指定した日数を表す TimeSpan を返します。日数は、ミリ秒単位の精度で指定します。 |
FromHours(Double) |
指定した時間数を表す TimeSpan を返します。時間数は、ミリ秒単位の精度で指定します。 |
FromMicroseconds(Double) |
指定した TimeSpan マイクロ秒数を表す を返します。 |
FromMilliseconds(Double) |
指定されたミリ秒数を表す TimeSpan を返します。 |
FromMinutes(Double) |
指定した分数を表す TimeSpan を返します。分数は、ミリ秒単位の精度で指定します。 |
FromSeconds(Double) |
指定した秒数を表す TimeSpan を返します。秒数は、ミリ秒単位の精度で指定します。 |
FromTicks(Int64) |
指定した時間を表す TimeSpan を返します。時間は、タイマー刻み単位で指定します。 |
GetHashCode() |
このインスタンスのハッシュ コードを返します。 |
Multiply(Double) |
このインスタンスと指定した |
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) |
現在の timespan 数インスタンスの値の、指定した文字スパンへの書式設定を試みます。 |
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) |
指定した 2 つの TimeSpan インスタンスを加算します。 |
Division(TimeSpan, Double) |
|
Division(TimeSpan, TimeSpan) |
|
Equality(TimeSpan, TimeSpan) |
2 つの TimeSpan インスタンスが等しいかどうかを示します。 |
GreaterThan(TimeSpan, TimeSpan) | |
GreaterThanOrEqual(TimeSpan, TimeSpan) | |
Inequality(TimeSpan, TimeSpan) |
TimeSpan の 2 つのインスタンスが等しくないかどうかを示します。 |
LessThan(TimeSpan, TimeSpan) | |
LessThanOrEqual(TimeSpan, TimeSpan) | |
Multiply(Double, TimeSpan) |
指定した |
Multiply(TimeSpan, Double) |
指定した |
Subtraction(TimeSpan, TimeSpan) | |
UnaryNegation(TimeSpan) |
指定したインスタンスの値とは符号が逆の値を持つ TimeSpan を返します。 |
UnaryPlus(TimeSpan) |
TimeSpan の指定したインスタンスを返します。 |
明示的なインターフェイスの実装
IComparable.CompareTo(Object) |
このインスタンスと指定したオブジェクトを比較し、このインスタンスが指定したオブジェクトよりも短いか、同じか、または長いかを示す整数を返します。 |