C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のTimeSpan.FromMilliseconds()メソッドの使い方を徹底解説

C#のTimeSpan.FromMilliseconds()メソッドは、指定したミリ秒数を表すTimeSpanオブジェクトを返す静的メソッドです。ミリ秒単位の時間間隔をプログラム内で扱いたい場合に便利で、戻り値としてSystem名前空間のTimeSpan構造体を返します。

構文

public static TimeSpan FromMilliseconds (double val);

パラメータ「val」には、ミリ秒数をdouble型で指定します。小数値も渡せるため、ミリ秒未満の精度(最大100ナノ秒単位)まで表現できます。負の値を指定すれば、過去方向の時間間隔も作成可能です。

サンプルコード1

まずは基本的な使用例を見てみましょう。FromDays()やFromHours()など他の生成メソッドと組み合わせ、TimeSpan.Compare()メソッドで各TimeSpan同士を比較しています。

using System;
public class Demo {
   public static void Main() {
      TimeSpan span1 = TimeSpan.FromDays(15);
      TimeSpan span2 = new TimeSpan(5, 15, 30);
      TimeSpan span3 = TimeSpan.FromHours(5);
      TimeSpan span4 = TimeSpan.FromMilliseconds(876876876.1);
      Console.WriteLine("TimeSpan1 = "+span1);
      Console.WriteLine("TimeSpan2 = "+span2);
      Console.WriteLine("TimeSpan3 = "+span3);
      Console.WriteLine("TimeSpan4 = "+span4);
      Console.WriteLine("Result (Comparison of span1 and span2) = "+TimeSpan.Compare(span1, span2));
      Console.WriteLine("Result (Comparison of span2 and span3) = "+TimeSpan.Compare(span2, span3));
      Console.WriteLine("Result (Comparison of span1 and span3) = "+TimeSpan.Compare(span1, span3));
      Console.WriteLine("Result (Comparison of span3 and span4) = "+TimeSpan.Compare(span3, span4));
   }
}

実行結果

TimeSpan1 = 15.00:00:00
TimeSpan2 = 05:15:30
TimeSpan3 = 05:00:00
TimeSpan4 = 10.03:34:36.8760000
Result (Comparison of span1 and span2) = 1
Result (Comparison of span2 and span3) = 1
Result (Comparison of span1 and span3) = 1
Result (Comparison of span3 and span4) = -1

この例では、876876876.1ミリ秒が「10日3時間34分36.876秒」というTimeSpanに変換されています。また、TimeSpan.Compare()の戻り値は、第1引数が大きければ「1」、第2引数が大きければ「-1」、等しければ「0」を返します。上記の出力では、span3(5時間)よりもspan4(約10日)の方が大きいため「-1」が表示されています。

サンプルコード2

続いて、別の例を見てみましょう。今度は小数の時間値や、わずか1ミリ秒という短い間隔を扱っています。

using System;
public class Demo {
   public static void Main() {
      TimeSpan span1 = TimeSpan.FromHours(0.78787);
      TimeSpan span2 = new TimeSpan(10, 30, 40);
      TimeSpan span3 = TimeSpan.FromHours(5);
      TimeSpan span4 = TimeSpan.FromMilliseconds(1);
      Console.WriteLine("TimeSpan1 = "+span1);
      Console.WriteLine("TimeSpan2 = "+span2);
      Console.WriteLine("TimeSpan3 = "+span3);
      Console.WriteLine("TimeSpan4 = "+span4);
      Console.WriteLine("Result (Comparison of span1 and span2) = "+TimeSpan.Compare(span1, span2));
      Console.WriteLine("Result (Comparison of span2 and span3) = "+TimeSpan.Compare(span2, span3));
      Console.WriteLine("Result (Comparison of span1 and span3) = "+TimeSpan.Compare(span1, span3));
      Console.WriteLine("Result (Comparison of span3 and span4) = "+TimeSpan.Compare(span3, span4));
   }
}

実行結果

TimeSpan1 = 00:47:16.3320000
TimeSpan2 = 10:30:40
TimeSpan3 = 05:00:00
TimeSpan4 = 00:00:00.0010000
Result (Comparison of span1 and span2) = -1
Result (Comparison of span2 and span3) = 1
Result (Comparison of span1 and span3) = -1
Result (Comparison of span3 and span4) = 1

このように、FromHours(0.78787)のように小数を渡すと「47分16.332秒」へ自動的に変換され、FromMilliseconds(1)は「0.001秒」を正確に表現できます。タイマー処理やパフォーマンス計測など、細かい時間単位が必要な場面でTimeSpan.FromMilliseconds()メソッドは非常に役立ちます。

  1. C#のGroupBy()メソッドとは?要素をグループ化する使い方を解説

    GroupBy()メソッドとはC#のGroupBy()は、System.Linq名前空間に用意されている拡張メソッドの一つです。指定したキー値に基づいてコレクション内の要素をグループ化し、その結果をIEnumerable<IGrouping<TKey, TElement>>として返します。各グループにはKeyプロパティが割り当てられ、同じキーを持つ要素がひとつのまとまりとして扱われます。サンプルコードまず、次のような整数型の配列を用意します。int[] arr = { 2, 30, 45, 60, 70 };この配列に対してGroupBy()を使い、「50以下の要素」と

  2. C#のCompareTo()メソッドの使い方を解説

    C#では、2つの値を比較する際にCompareTo()メソッドを使用します。このメソッドは、呼び出し元の値と引数で渡した値を比較し、その大小関係を整数値として返します。CompareTo()メソッドの戻り値CompareTo()メソッドの戻り値は以下の3パターンです。0 = 両方の値が等しい場合1 = 呼び出し元の値が引数の値より大きい場合(第2の数値が小さい)-1 = 呼び出し元の値が引数の値より小さい場合(第1の数値が小さい)CompareTo()メソッドの実装例それでは、C#でCompareTo()メソッドを実装するサンプルコードを見てみましょう。ここでは、同じ値を持つ2つのint型変数