IsDaylightSavingTimeメソッドを使うと、DateTimeの表す日時が夏時間の期間内かどうかを調べることができます。 このメソッドでは、実行環境に設定されているタイムゾーンに夏時間が導入されていなければ、当然どのような日付に対してもfalseを返します。 なお、実行環境のタイムゾーンに関する情報は、TimeZoneクラスおよびTimeZoneInfoクラスで参照することが出来ます。

DateTime.IsDaylightSavingTimeメソッドを使ってDateTimeの表す日時が夏時間かどうかを調べる
Imports System

Class Sample
  Shared Sub Main()
    ' 標準時間・夏時間のタイムゾーン名を表示
    Console.WriteLine("StandardName: {0}", TimeZone.CurrentTimeZone.StandardName)
    Console.WriteLine("DaylightName: {0}", TimeZone.CurrentTimeZone.DaylightName)

    ' 冬期・夏期の日付に対してIsDaylightSavingTimeメソッドを呼び出して夏時間かどうか調べる
    Dim winter As New DateTime(2013, 1, 1)
    Dim summer As New DateTime(2013, 7, 1)

    Console.WriteLine("{0} {1}", winter, winter.IsDaylightSavingTime())
    Console.WriteLine("{0} {1}", summer, summer.IsDaylightSavingTime())
  End Sub
End Class
Windows 10+.NET Framework 4.8・タイムゾーンが「大阪、札幌、東京」での実行結果例
StandardName: 東京 (標準時)
DaylightName: 東京 (夏時間)
2013/01/01 0:00:00 False
2013/07/01 0:00:00 False
Ubuntu 18.04+.NET Core 2.1・環境変数TZ=America/Los_Angelesでの実行結果例
StandardName: アメリカ太平洋標準時
DaylightName: アメリカ太平洋夏時間
2013/01/01 0:00:00 False
2013/07/01 0:00:00 True
Ubuntu 18.04+Mono 6.0・環境変数TZ=Asia/Tokyoでの実行結果例
StandardName: JST
DaylightName: JDT
2013/01/01 0:00:00 False
2013/07/01 0:00:00 False
Ubuntu 18.04+Mono 6.0・環境変数TZ=America/Los_Angelesでの実行結果例
StandardName: PST
DaylightName: PDT
2013/01/01 0:00:00 False
2013/07/01 0:00:00 True

実行環境に設定されているものとは異なるタイムゾーンにおける日時が夏時間の期間内かどうかを調べるには、TimeZoneInfo.IsDaylightSavingTimeメソッドを使います。

MENTAにてテキストチャットによるサポートを行っています。 問題の解決法をお探しの方や.NET/C#を学習中の方はどうぞご利用ください。