Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

DaylightTime Class

Defines the period of daylight saving time.

Namespace: System.Globalization
Assembly: mscorlib (in mscorlib.dll)

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class DaylightTime
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class DaylightTime
SerializableAttribute 
ComVisibleAttribute(true) 
public class DaylightTime
Not applicable.

Daylight saving time is a period during the year when the time is advanced, usually by an hour, to take advantage of the extended daylight hours. At the end of the period, the time is set back to the standard time.

The DaylightTime class is used extensively by members of the System.TimeZone class.

The following code example uses the TimeZone.GetDaylightChanges method to return the daylight saving time period and offset for selected years.

// 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
*/ 

// Example of the TimeZone.GetDaylightChanges( int ) method.
import System.*;
import System.Globalization.*;

class DaylightChangesDemo
{
    // Get the local time zone and a base local time.
    private static TimeZone localZone = TimeZone.get_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}", new Object[] {
            (System.Int32)year, daylight.get_Start(), daylight.get_End(),
            daylight.get_Delta() } );
    } //CreateDaylightTime
      
    public static void main(String[] args)
    {
        final 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.get_CurrentCulture().get_Name()
            .equalsIgnoreCase("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.get_StandardName());
        Console.WriteLine(headFmt, new Object[] { "Year", "Start", "End",
            "Change" });
        Console.WriteLine(headFmt, new Object[] { "----", "-----", "---",
            "------" });
      
        CreateDaylightTime(1960);
        CreateDaylightTime(1970);
        CreateDaylightTime(1980);
        CreateDaylightTime(1990);
        CreateDaylightTime(2000);
        CreateDaylightTime(2001);
        CreateDaylightTime(2002);
        CreateDaylightTime(2003);
        CreateDaylightTime(2004);
        CreateDaylightTime(2005);
        CreateDaylightTime(2020);
        CreateDaylightTime(2040);
    } //main
} //DaylightChangesDemo

/*
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
*/

System.Object
  System.Globalization.DaylightTime
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

XNA Framework

Supported in: 1.0
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.