次の方法で共有


TimeZone.GetDaylightChanges メソッド

特定年度の夏時間の期間を返します。

Public MustOverride Function GetDaylightChanges( _
   ByVal year As Integer _) As DaylightTime
[C#]
public abstract DaylightTime GetDaylightChanges(intyear);
[C++]
public: virtual DaylightTime* GetDaylightChanges(intyear) = 0;
[JScript]
public abstract function GetDaylightChanges(
   year : int) : DaylightTime;

パラメータ

  • year
    夏時間の期間が適用される年。

戻り値

year の夏時間の開始日と終了日を格納している System.Globalization.DaylightTime インスタンス。

例外

例外の種類 条件
ArgumentOutOfRangeException year が 1 未満であるか、9999 を超えています。

解説

夏時間は 1 年あたり 1 期間だけサポートされます。

夏時間が現在のタイム ゾーンで使用されていない場合は、 DaylightTime が返されます。ここで、 StartEnd の値は DateTime.MinValue で、 DaylightTime.Delta の値はタイマ刻み 0 に初期化された TimeSpan となります。

使用例

[Visual Basic, C#, C++] GetDaylightChanges メソッドを使用して、選択した年の夏時間の期間とオフセットを返すコード例を次に示します。

 
' Example of the TimeZone.GetDaylightChanges( Integer ) method.
Imports System
Imports System.Globalization
Imports Microsoft.VisualBasic

Module DaylightChangesDemo

    ' Get the local time zone and a base local time.
    Dim localZone As TimeZone = TimeZone.CurrentTimeZone

    Sub CreateDaylightTime( year As Integer )

        ' Create a DaylightTime object for the specified year.
        Dim daylight As DaylightTime = _
            localZone.GetDaylightChanges( year )

        ' Display the start and end dates and the time change.
        Console.WriteLine( "{0,-7}{1,-20:yyyy-MM-dd HH:mm}" & _
            "{2,-20:yyyy-MM-dd HH:mm}{3}", _
            year, daylight.Start, daylight.End, daylight.Delta )
    End Sub 

    Sub Main( )

        Const headFmt As String = "{0,-7}{1,-20}{2,-20}{3}"

        Console.WriteLine( _
            "This example of TimeZone.GetDaylightChanges( " & _
            "Integer ) generates the " & vbCrLf & "following " & _
            "output, which varies depending on the time zone " & _
            "in which " & vbCrLf & "it is run. The example " & _
            "creates DaylightTime objects for specified " & _
            vbCrLf & "years and displays the start and end dates " & _
            "and time change for " & vbCrLf &  "daylight " & _
            "saving time." & vbCrLf )

        ' Write a message explaining that start dates prior to 1986 
        ' in the en-US culture may not be correct.
        If CultureInfo.CurrentCulture.Name = "en-US" Then

            Console.WriteLine( _
                "Note: In the [en-US] culture, all start dates " & _
                "are calculated from " & vbCrLf & "the first " & _
                "Sunday in April, based on a standard set in " & _
                "1986. For " & vbCrLf & "dates prior to 1986, " & _
                "the calculated start date may not be accurate." )
        End If

        Console.WriteLine( vbCrLf & "Local time: {0}" & vbCrLf, _
            localZone.StandardName )

        Console.WriteLine( headFmt, "Year", "Start", "End", "Change" )
        Console.WriteLine( headFmt, "----", "-----", "---", "------" )

        CreateDaylightTime( 1960 )
        CreateDaylightTime( 1970 )
        CreateDaylightTime( 1980 )
        CreateDaylightTime( 1990 )
        CreateDaylightTime( 2000 )
        CreateDaylightTime( 2001 )
        CreateDaylightTime( 2002 )
        CreateDaylightTime( 2003 )
        CreateDaylightTime( 2004 )
        CreateDaylightTime( 2005 )
        CreateDaylightTime( 2020 )
        CreateDaylightTime( 2040 )
    End Sub 
End Module 

' This example of TimeZone.GetDaylightChanges( Integer ) generates the
' following output, which varies depending on the time zone in which
' it is run. The example creates DaylightTime objects for specified
' years and displays the start and end dates and time change for
' daylight saving time.
' 
' Note: In the [en-US] culture, all start dates are calculated from
' the first Sunday in April, based on a standard set in 1986. For
' dates prior to 1986, the calculated start date may not be accurate.
' 
' Local time: Pacific Standard Time
' 
' Year   Start               End                 Change
' ----   -----               ---                 ------
' 1960   1960-04-03 02:00    1960-10-30 02:00    01:00:00
' 1970   1970-04-05 02:00    1970-10-25 02:00    01:00:00
' 1980   1980-04-06 02:00    1980-10-26 02:00    01:00:00
' 1990   1990-04-01 02:00    1990-10-28 02:00    01:00:00
' 2000   2000-04-02 02:00    2000-10-29 02:00    01:00:00
' 2001   2001-04-01 02:00    2001-10-28 02:00    01:00:00
' 2002   2002-04-07 02:00    2002-10-27 02:00    01:00:00
' 2003   2003-04-06 02:00    2003-10-26 02:00    01:00:00
' 2004   2004-04-04 02:00    2004-10-31 02:00    01:00:00
' 2005   2005-04-03 02:00    2005-10-30 02:00    01:00:00
' 2020   2020-04-05 02:00    2020-10-25 02:00    01:00:00
' 2040   2040-04-01 02:00    2040-10-28 02:00    01:00:00

[C#] 
// Example of the TimeZone.GetDaylightChanges( int ) method.
using System;
using System.Globalization;

class DaylightChangesDemo
{
    // Get the local time zone and a base local time.
    static TimeZone localZone = TimeZone.CurrentTimeZone;

    static void CreateDaylightTime( int year )
    {
        // Create a DaylightTime object for the specified year.
        DaylightTime daylight = 
            localZone.GetDaylightChanges( year );

        // Display the start and end dates and the time change.
        Console.WriteLine( "{0,-7}{1,-20:yyyy-MM-dd HH:mm}" +
            "{2,-20:yyyy-MM-dd HH:mm}{3}", 
            year, daylight.Start, daylight.End, daylight.Delta );
    } 

    static void Main( )
    {
        const string headFmt = "{0,-7}{1,-20}{2,-20}{3}";

        Console.WriteLine(
            "This example of TimeZone.GetDaylightChanges( int ) " +
            "generates the \nfollowing output, which varies " +
            "depending on the time zone in which \nit is run. The " +
            "example creates DaylightTime objects for specified \n" +
            "years and displays the start and end dates and time " +
            "change for \ndaylight saving time.\n" );

        // Write a message explaining that start dates prior to 1986 
        // in the en-US culture may not be correct.
        if( CultureInfo.CurrentCulture.Name == "en-US" )
        {
            Console.WriteLine(
                "Note: In the [en-US] culture, all start dates are " +
                "calculated from \nthe first Sunday in April, " +
                "based on a standard set in 1986. For \ndates " +
                "prior to 1986, the calculated start date may not " +
                "be accurate." );
        }

        Console.WriteLine( "\nLocal time: {0}\n", 
            localZone.StandardName );

        Console.WriteLine( headFmt, "Year", "Start", "End", "Change" );
        Console.WriteLine( headFmt, "----", "-----", "---", "------" );

        CreateDaylightTime( 1960 );
        CreateDaylightTime( 1970 );
        CreateDaylightTime( 1980 );
        CreateDaylightTime( 1990 );
        CreateDaylightTime( 2000 );
        CreateDaylightTime( 2001 );
        CreateDaylightTime( 2002 );
        CreateDaylightTime( 2003 );
        CreateDaylightTime( 2004 );
        CreateDaylightTime( 2005 );
        CreateDaylightTime( 2020 );
        CreateDaylightTime( 2040 );
    } 
} 

/*
This example of TimeZone.GetDaylightChanges( int ) generates the
following output, which varies depending on the time zone in which
it is run. The example creates DaylightTime objects for specified
years and displays the start and end dates and time change for
daylight saving time.

Note: In the [en-US] culture, all start dates are calculated from
the first Sunday in April, based on a standard set in 1986. For
dates prior to 1986, the calculated start date may not be accurate.

Local time: Pacific Standard Time

Year   Start               End                 Change
----   -----               ---                 ------
1960   1960-04-03 02:00    1960-10-30 02:00    01:00:00
1970   1970-04-05 02:00    1970-10-25 02:00    01:00:00
1980   1980-04-06 02:00    1980-10-26 02:00    01:00:00
1990   1990-04-01 02:00    1990-10-28 02:00    01:00:00
2000   2000-04-02 02:00    2000-10-29 02:00    01:00:00
2001   2001-04-01 02:00    2001-10-28 02:00    01:00:00
2002   2002-04-07 02:00    2002-10-27 02:00    01:00:00
2003   2003-04-06 02:00    2003-10-26 02:00    01:00:00
2004   2004-04-04 02:00    2004-10-31 02:00    01:00:00
2005   2005-04-03 02:00    2005-10-30 02:00    01:00:00
2020   2020-04-05 02:00    2020-10-25 02:00    01:00:00
2040   2040-04-01 02:00    2040-10-28 02:00    01:00:00
*/ 

[C++] 
// Example of the TimeZone::GetDaylightChanges( int ) method.
#using <mscorlib.dll>
using namespace System;
using namespace System::Globalization;

void CreateDaylightTime( int year, TimeZone* localZone )
{
    // Create a DaylightTime object for the specified year.
    DaylightTime* daylight = 
        localZone->GetDaylightChanges( year );

    // Display the start and end dates and the time change.
    Console::WriteLine( S"{0,-7}{1,-20:yyyy-MM-dd HH:mm}" 
        S"{2,-20:yyyy-MM-dd HH:mm}{3}", 
        __box( year ), __box( daylight->Start ), 
        __box( daylight->End ), __box( daylight->Delta ) );
} 

void main( )
{
    String* headFmt = S"{0,-7}{1,-20}{2,-20}{3}";

    // Get the local time zone.
    TimeZone* localZone = TimeZone::CurrentTimeZone;

    Console::WriteLine(
        S"This example of TimeZone::GetDaylightChanges( int ) " 
        S"generates the \nfollowing output, which varies " 
        S"depending on the time zone in which \nit is run. The " 
        S"example creates DaylightTime objects for specified \n" 
        S"years and displays the start and end dates and time " 
        S"change for \ndaylight saving time.\n" );

    // Write a message explaining that start dates prior to 1986 
    // in the en-US culture may not be correct.
    // ( CultureInfo::CurrentCulture->Name == S"en-US" ) returns False.
    if( CultureInfo::CurrentCulture->Name->CompareTo( S"en-US" ) == 0 )
    {
        Console::WriteLine(
            S"Note: In the [en-US] culture, all start dates are " 
            S"calculated from \nthe first Sunday in April, based on " 
            S"a standard set in 1986. For \ndates prior to 1986, " 
            S"the calculated start date may not be accurate." );
    }

    Console::WriteLine( S"\nLocal time: {0}\n", 
        localZone->StandardName );

    Console::WriteLine( headFmt, S"Year", S"Start", 
        S"End", S"Change" );
    Console::WriteLine( headFmt, S"----", S"-----", 
        S"---", S"------" );

    CreateDaylightTime( 1960, localZone );
    CreateDaylightTime( 1970, localZone );
    CreateDaylightTime( 1980, localZone );
    CreateDaylightTime( 1990, localZone );
    CreateDaylightTime( 2000, localZone );
    CreateDaylightTime( 2001, localZone );
    CreateDaylightTime( 2002, localZone );
    CreateDaylightTime( 2003, localZone );
    CreateDaylightTime( 2004, localZone );
    CreateDaylightTime( 2005, localZone );
    CreateDaylightTime( 2020, localZone );
    CreateDaylightTime( 2040, localZone );
} 

/*
This example of TimeZone::GetDaylightChanges( int ) generates the
following output, which varies depending on the time zone in which
it is run. The example creates DaylightTime objects for specified
years and displays the start and end dates and time change for
daylight saving time.

Note: In the [en-US] culture, all start dates are calculated from
the first Sunday in April, based on a standard set in 1986. For
dates prior to 1986, the calculated start date may not be accurate.

Local time: Pacific Standard Time

Year   Start               End                 Change
----   -----               ---                 ------
1960   1960-04-03 02:00    1960-10-30 02:00    01:00:00
1970   1970-04-05 02:00    1970-10-25 02:00    01:00:00
1980   1980-04-06 02:00    1980-10-26 02:00    01:00:00
1990   1990-04-01 02:00    1990-10-28 02:00    01:00:00
2000   2000-04-02 02:00    2000-10-29 02:00    01:00:00
2001   2001-04-01 02:00    2001-10-28 02:00    01:00:00
2002   2002-04-07 02:00    2002-10-27 02:00    01:00:00
2003   2003-04-06 02:00    2003-10-26 02:00    01:00:00
2004   2004-04-04 02:00    2004-10-31 02:00    01:00:00
2005   2005-04-03 02:00    2005-10-30 02:00    01:00:00
2020   2020-04-05 02:00    2020-10-25 02:00    01:00:00
2040   2040-04-01 02:00    2040-10-28 02:00    01:00:00
*/ 

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

TimeZone クラス | TimeZone メンバ | System 名前空間 | Int32