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

C# TimeSpanのSecondsとTotalSecondsの違いとは?使い分けを解説

C#のTimeSpan構造体には、時間間隔を扱うためのさまざまなプロパティが用意されています。その中でもSecondsTotalSecondsは名前が似ているため混同されやすいのですが、両者はまったく異なる値を返します。

SecondsとTotalSecondsの基本的な違い

  • Seconds:TimeSpanが表す時間のうち、「秒の成分(0〜59)」だけを取り出すプロパティです。日・時・分などの要素は含まれません。
  • TotalSeconds:日・時・分・秒などすべての要素を合計し、秒単位に換算した値(double型)を返します。

それでは、まずSecondsの動作を確認してみましょう。

例:Secondsプロパティを使う

using System;
using System.Linq;
public class Demo {
    public static void Main() {
        TimeSpan ts = new TimeSpan(0, 100, 0, 20, 0);
        // 秒の成分を表示
        Console.WriteLine(ts.Seconds);
    }
}

出力結果

20

この例では、new TimeSpan(0, 100, 0, 20, 0)という「100時間20分0秒」の時間間隔を作成しています。Secondsは秒の部分である「20」だけを返していることがわかります。

次に、同じTimeSpanの値に対してTotalSecondsを使った場合を見てみましょう。

例:TotalSecondsプロパティを使う

using System;
using System.Linq;
public class Demo {
    public static void Main() {
        TimeSpan ts = new TimeSpan(0, 100, 0, 20, 0);
        // 全体を秒に換算して表示
        Console.WriteLine(ts.TotalSeconds);
    }
}

出力結果

360020

今度は「360020」という大きな数値が返されました。これは100時間×3600秒+20分×60秒+0秒=360000+1200+20=360020秒という計算結果で、時間間隔全体を秒単位に換算した値です。

最後に、両方のプロパティを同じプログラムで実行して違いを比較してみます。

例:SecondsとTotalSecondsを同時に使う

using System;
using System.Linq;
public class Demo {
    public static void Main() {
        TimeSpan ts = new TimeSpan(0, 100, 0, 20, 0);
        // 秒の成分
        Console.WriteLine(ts.Seconds);
        // 全体を秒に換算した値
        Console.WriteLine(ts.TotalSeconds);
    }
}

出力結果

20
360020

まとめ

プロパティ戻り値の型意味
Secondsint時間のうち「秒の成分」(0〜59)のみを返す
TotalSecondsdouble日・時・分・秒などをすべて合計し、秒単位に換算した値を返す

このように、Secondsは時間の「一部」を表すのに対し、TotalSecondsは時間全体を秒に変換した値を返します。処理時間の計測や時間の演算を行う場合はTotalSecondsが便利で、表示目的で秒の部分だけが必要な場合にはSecondsを使用する、といった使い分けができます。

  1. C#におけるTrimStart()とTrimEnd()の違いを徹底解説

    C#には、文字列の不要な文字を取り除くための便利なメソッドが用意されています。その中でもTrimStart()とTrimEnd()は、それぞれ以下のような役割を持つ文字列操作メソッドです。TrimStart(): 文字列の先頭から、指定した一連の文字の出現箇所をすべて削除するTrimEnd(): 文字列の末尾から、指定した一連の文字の出現箇所をすべて削除するどちらも引数としてChar型の配列を受け取り、その配列に含まれる文字だけを対象に削除処理を行います。それでは、具体的な使用例を見ていきましょう。TrimStart()メソッドとはTrimStart()メソッドは、配列で指定された文字が文字列

  2. GoとJavaの違いを徹底比較!特徴と使い分けのポイント

    プログラミング言語を選ぶ際、「Go」と「Java」のどちらを採用すべきか迷う開発者は少なくありません。どちらもGoogleや企業システムで広く使われる人気言語ですが、設計思想や言語仕様には大きな違いがあります。本記事では、それぞれの言語の特徴を解説したうえで、両者の主な違いを比較表を使ってわかりやすく整理します。 GoとはGoはGoogleが開発した手続き型(プロシージャル)プログラミング言語です。プログラムはパッケージ単位で構成され、シンプルで読みやすいコード記述を重視した設計になっています。動的言語に近い柔軟なパターンを取り入れつつ、静的型付けによる安全性も兼ね備えています。また、軽量スレ