C#のTimeSpan.FromMinutes()メソッドの使い方を解説
C#のTimeSpan.FromMinutes()メソッドは、指定した分数を表すTimeSpanオブジェクトを返すための静的メソッドです。引数にはdouble型の値を指定でき、ミリ秒単位の精度で時間間隔を表現できます。
構文
public static TimeSpan FromMinutes (double val);
引数valには分数(分単位の値)を指定します。小数点以下の値も渡すことが可能で、その場合はミリ秒単位まで正確に処理されます。たとえば、1.5を指定すると「1分30秒」のTimeSpanが生成されます。
サンプルコード①
まず、FromMinutes()メソッドを含む複数のTimeSpan生成方法と、TimeSpan.Compare()メソッドによる比較の例を見てみましょう。
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);
TimeSpan span5 = TimeSpan.FromMinutes(100);
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:47:16.3320000 TimeSpan2 = 10:30:40 TimeSpan3 = 05:00:00 TimeSpan4 = 00:00:00.0010000 TimeSpan5 = 01:40: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
この例では、TimeSpan.FromMinutes(100)によって100分が「01:40:00」(1時間40分)に変換されていることが確認できます。また、TimeSpan.Compare()メソッドは、第1引数が第2引数より短い場合に-1、長い場合に1、等しい場合に0を返します。
サンプルコード②
次に、別の値を使った例です。
using System;
public class Demo {
public static void Main() {
TimeSpan span1 = TimeSpan.FromMinutes(200);
TimeSpan span2 = new TimeSpan(20, 10, 15);
TimeSpan span3 = TimeSpan.FromHours(.78);
TimeSpan span4 = TimeSpan.FromMilliseconds(1);
TimeSpan span5 = TimeSpan.FromMinutes(150);
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 = 03:20:00 TimeSpan2 = 20:10:15 TimeSpan3 = 00:46:48 TimeSpan4 = 00:00:00.0010000 TimeSpan5 = 02:30: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
この例では、TimeSpan.FromMinutes(200)が「03:20:00」(3時間20分)に、TimeSpan.FromMinutes(150)が「02:30:00」(2時間30分)に変換されています。このようにFromMinutes()メソッドを使うことで、分数から直感的にTimeSpanオブジェクトを作成できます。
まとめ
TimeSpan.FromMinutes()メソッドは、分単位の数値からTimeSpanオブジェクトを簡単に生成できる便利なメソッドです。小数値にも対応しているため、ミリ秒レベルの精度が必要な場面でも活用できます。類似のメソッドとして、FromHours()、FromSeconds()、FromMilliseconds()なども用意されており、用途に応じて使い分けることで可読性の高いコードを書くことができます。
-
C#のCompareTo()メソッドの使い方を解説
C#では、2つの値を比較する際にCompareTo()メソッドを使用します。このメソッドは、呼び出し元の値と引数で渡した値を比較し、その大小関係を整数値として返します。CompareTo()メソッドの戻り値CompareTo()メソッドの戻り値は以下の3パターンです。0 = 両方の値が等しい場合1 = 呼び出し元の値が引数の値より大きい場合(第2の数値が小さい)-1 = 呼び出し元の値が引数の値より小さい場合(第1の数値が小さい)CompareTo()メソッドの実装例それでは、C#でCompareTo()メソッドを実装するサンプルコードを見てみましょう。ここでは、同じ値を持つ2つのint型変数
-
RubyのArray#zipメソッド徹底解説!2つの配列をスマートに結合する方法
2つの配列を要素ごとに比較して、その違いを見つけたいと思ったことはありませんか? あるいは、各インデックスごとに最大の数値を求めたい、キーのリストと値のリストを組み合わせてハッシュを作りたい――そんな場面にも出会うことがあるでしょう。 …これを「面倒な方法」で実装すると、次のようなコードになります。 例:冗長な書き方 a = [1,2,3,4,5] b = [1,2,3,6,8] c = a.map.with_index { |_, idx| [a[idx], b[idx]] } # [[1, 1], [2, 2], [3, 3], [4, 6], [5, 8]] 確かに動作はしますが