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

C#のDateTime.IsDaylightSavingTime()メソッドの使い方を解説

C#のDateTime.IsDaylightSavingTime()メソッドは、そのDateTimeインスタンスが現在のタイムゾーンにおける夏時間(デイライト・セービング・タイム)の期間内に該当するかどうかを判定するために使用されます。戻り値はbool型で、夏時間内であればtrue、そうでなければfalseを返します。

構文

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

public bool IsDaylightSavingTime();

使用例1:特定の日時で判定する

まず、固定の日時を指定してIsDaylightSavingTime()メソッドを実装した例を見てみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTime d = new DateTime(2019, 10, 11, 7, 10, 40);
        bool res = d.IsDaylightSavingTime();
        if (res)
            Console.WriteLine("TRUE: このDateTimeインスタンスは、現在のタイムゾーンの夏時間範囲内です。");
        else
            Console.WriteLine("FALSE: このDateTimeインスタンスは、現在のタイムゾーンの夏時間範囲外です。");
    }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

FALSE: このDateTimeインスタンスは、現在のタイムゾーンの夏時間範囲外です。

使用例2:現在日時で判定する

続いて、DateTime.Nowを使って現在の日時が夏時間に該当するかどうかを判定する例です。

using System;
public class Demo {
    public static void Main() {
        DateTime d = DateTime.Now;
        bool res = d.IsDaylightSavingTime();
        if (res)
            Console.WriteLine("TRUE: このDateTimeインスタンスは、現在のタイムゾーンの夏時間範囲内です。");
        else
            Console.WriteLine("FALSE: このDateTimeインスタンスは、現在のタイムゾーンの夏時間範囲外です。");
    }
}

出力結果

実行環境のタイムゾーンや実行時刻によって結果は異なりますが、たとえば以下のように出力されます。

FALSE: このDateTimeインスタンスは、現在のタイムゾーンの夏時間範囲外です。

補足ポイント

  • 日本では夏時間制度が導入されていないため、通常は常にfalseが返されます。
  • このメソッドが正しく機能するのは、DateTimeのKindプロパティがLocalまたはUnspecifiedの場合です。UTCの時刻に対しては例外がスローされることがあります。
  • 夏時間の有無はOSのタイムゾーン設定に依存するため、実行環境ごとに結果が変わる点に注意が必要です。
  1. C#のDateTime.AddHours()メソッドの使い方を徹底解説

    C#のDateTime.AddHours()メソッドは、指定した時間数を現在のDateTimeインスタンスの値に加算するためのメソッドです。重要なポイントとして、このメソッドは元のDateTimeオブジェクトを変更せず、計算結果を含む新しいDateTimeオブジェクトを返します。基本仕様DateTimeは不変(イミュータブル)な構造体のため、AddHours()を呼び出しても元の値は変わりません。戻り値は加算後の日時を持つ新しいDateTimeです。構文public DateTime AddHours (double hrs);パラメータ hrs には加算する時間数を指定します。負の値を渡すこ

  2. C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法

    C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。 基本構文 DateTime.AddDays()メソッドの構文は以下のとおりです。 public DateTime AddDays (double days); 引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動