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」に変換されます。このように、各種ファクトリメソッドを用途に応じて使い分けることで、時間間隔の生成を柔軟かつ直感的に行えます。
-
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
-
C#のGroupBy()メソッドとは?要素をグループ化する使い方を解説
GroupBy()メソッドとはC#のGroupBy()は、System.Linq名前空間に用意されている拡張メソッドの一つです。指定したキー値に基づいてコレクション内の要素をグループ化し、その結果をIEnumerable<IGrouping<TKey, TElement>>として返します。各グループにはKeyプロパティが割り当てられ、同じキーを持つ要素がひとつのまとまりとして扱われます。サンプルコードまず、次のような整数型の配列を用意します。int[] arr = { 2, 30, 45, 60, 70 };この配列に対してGroupBy()を使い、「50以下の要素」と