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

2つの日付間の時間差を計算するC#プログラム

C#では、DateTimeオブジェクト同士を引き算することで、2つの日付間の時間差を簡単に求められます。その結果はTimeSpan型として返され、時間・分・秒などさまざまな単位で差を取得できます。

ここでは、2つの日付の差を「時間」単位で求める方法を、サンプルコードとともに解説します。

処理の手順

1. 2つの日付を設定する

まず、DateTime構造体を使って、比較対象となる2つの日付を作成します。

DateTime date1 = new DateTime(2018, 7, 15, 08, 15, 20);
DateTime date2 = new DateTime(2018, 8, 17, 11, 14, 25);

2. 日付の差を取得する

次に、2つの日付を減算すると、その差がTimeSpan型として得られます。

TimeSpan ts = date2 - date1;

3. 時間差を取得する

TimeSpanのTotalHoursプロパティを使えば、日付間の差を時間数(小数点以下を含む)として取得できます。

ts.TotalHours

完全なサンプルコード

以上の手順をまとめた、実行可能な完全なコードは以下の通りです。

using System;
using System.Linq;
public class Demo {
    public static void Main() {
        DateTime date1 = new DateTime(2018, 7, 15, 08, 15, 20);
        DateTime date2 = new DateTime(2018, 8, 17, 11, 14, 25);
        TimeSpan ts = date2 - date1;
        Console.WriteLine("No. of Hours (Difference) = {0}", ts.TotalHours);
    }
}

実行結果

No. of Hours (Difference) = 794.984722222222

補足:他の単位で差を取得するには

TimeSpanには、TotalHours以外にも便利なプロパティが用意されています。用途に応じて使い分けましょう。

  • TotalDays … 差を「日」単位で取得
  • TotalMinutes … 差を「分」単位で取得
  • TotalSeconds … 差を「秒」単位で取得

このように、DateTimeの減算とTimeSpanのプロパティを組み合わせることで、日付や時刻の差を柔軟に扱うことができます。

  1. JavaScriptで2つの配列の対称差を求める方法

    対称差(Symmetric Difference)とは数学において、2つの集合AとBの対称差は「A △ B」と表記されます。対称差とは、AまたはBのどちらか一方にのみ属し、両方には属さない要素すべてからなる集合として定義されます。具体例例えば、以下のような2つの配列があるとします。const A = [1, 2, 3, 4, 5, 6, 7, 8]; const B = [1, 3, 5, 6, 7, 8, 9];この場合、AとBの対称差は次のようになります。const diff = [2, 4, 9];2と4は配列Aにのみ存在し、9は配列Bにのみ存在します。両方の配列に共通して含まれる1、3

  2. Androidで2つの日付の差分(日数)を取得する方法【サンプルコード付き】

    はじめに この記事では、Androidアプリで2つの日付の差分(日数)を取得する方法を、実際に動作するサンプルコードとともに解説します。日付の差分計算は、利用期間の表示やイベントまでの残り日数のカウントなど、さまざまな場面で役立つ基本的な処理です。 実装の手順 ステップ1:Android Studioで新規プロジェクトを作成 Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成しましょう。 ステップ2:レイアウトファイル(activity_main.xml)の編集 res/layout/ac