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

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

C#のTimeSpan.FromSeconds()メソッドは、指定した秒数を表すTimeSpanオブジェクトを返す静的メソッドです。引数にはdouble型の値を渡すことができ、その値は最も近いミリ秒単位まで正確に反映されます。

構文

このメソッドの構文は以下のとおりです。

public static TimeSpan FromSeconds (double val);

パラメータ「val」には、秒数をdouble型で指定します。小数点以下の値も指定可能で、内部では最も近いミリ秒に丸められて処理されます。

使用例1

まずは、FromSeconds()を含む複数のファクトリメソッドを使った基本的なコード例を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      TimeSpan span1 = TimeSpan.FromSeconds(0.6768788);
      TimeSpan span2 = new TimeSpan(25, 15, 45);
      TimeSpan span3 = TimeSpan.FromHours(.4788);
      TimeSpan span4 = TimeSpan.FromMilliseconds(0.8787);
      TimeSpan span5 = TimeSpan.FromMinutes(2.550);
      Console.WriteLine("TimeSpan1 = "+span1);
      Console.WriteLine("TimeSpan2 = "+span2);
      Console.WriteLine("TimeSpan3 = "+span3);
      Console.WriteLine("TimeSpan4 = "+span4);
      Console.WriteLine("TimeSpan5 = "+span5);
      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));
      Console.WriteLine("Result (Comparison of span4 and span5) = "+TimeSpan.Compare(span4, span5));
   }
}

出力結果

TimeSpan1 = 00:00:00.6770000
TimeSpan2 = 1.01:15:45
TimeSpan3 = 00:28:43.6800000
TimeSpan4 = 00:00:00.0010000
TimeSpan5 = 00:02:33
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
Result (Comparison of span4 and span5) = -1

結果のポイント

  • TimeSpan.FromSeconds(0.6768788)は、ミリ秒単位に丸められ「00:00:00.6770000」となります。
  • TimeSpan.FromMilliseconds(0.8787)は、最も近いミリ秒である「1ミリ秒」に丸められます。
  • TimeSpan.Compare(a, b)は、aがbより短い場合に-1、等しい場合に0、長い場合に1を返します。

使用例2

続いて、整数値や負の値を扱う例を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      TimeSpan span1 = TimeSpan.FromSeconds(1);
      TimeSpan span2 = new TimeSpan(-9, 45, 50);
      TimeSpan span3 = TimeSpan.FromHours(5);
      TimeSpan span4 = TimeSpan.FromMilliseconds(10000);
      TimeSpan span5 = TimeSpan.FromMinutes(2);
      Console.WriteLine("TimeSpan1 = "+span1);
      Console.WriteLine("TimeSpan2 = "+span2);
      Console.WriteLine("TimeSpan3 = "+span3);
      Console.WriteLine("TimeSpan4 = "+span4);
      Console.WriteLine("TimeSpan5 = "+span5);
      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));
      Console.WriteLine("Result (Comparison of span4 and span5) = "+TimeSpan.Compare(span4, span5));
   }
}

出力結果

TimeSpan1 = 00:00:01
TimeSpan2 = -08:14:10
TimeSpan3 = 05:00:00
TimeSpan4 = 00:00:10
TimeSpan5 = 00:02:00
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
Result (Comparison of span4 and span5) = -1

補足

new TimeSpan(-9, 45, 50)のように負の時・分・秒を組み合わせると、「-9時間+45分+50秒」という計算が行われ、結果として「-08:14:10」が出力されます。また、TimeSpan.FromMilliseconds(10000)は10,000ミリ秒=10秒として「00:00:10」に変換されます。このように、各種ファクトリメソッドを用途に応じて使い分けることで、時間間隔の生成を柔軟かつ直感的に行えます。

  1. C#でTimeSpanをhh:mm:ss形式にフォーマットする方法

    C#では、TimeSpan構造体の値を「hh:mm:ss」形式で簡単にフォーマットして表示することができます。カスタム書式指定子を使えば、時間・分・秒を自由な形式で出力可能です。 TimeSpanの設定 まず、フォーマット対象となるTimeSpanオブジェクトを作成します。 TimeSpan ts = new TimeSpan(9, 15, 30); この例では、9時間15分30秒を表すTimeSpanを作成しています。 TimeSpanをフォーマットするには TimeSpanを「hh:mm:ss」形式でフォーマットするには、次のような書式指定文字列を使用します。 {0:hh\:mm\:ss

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

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