// Example of the TimeZone::GetDaylightChanges( int ) method.
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( "{0,-7}{1,-20:yyyy-MM-dd HH:mm}"
"{2,-20:yyyy-MM-dd HH:mm}{3}", year, daylight->Start, daylight->End, daylight->Delta );
}
int main()
{
String^ headFmt = "{0,-7}{1,-20}{2,-20}{3}";
// Get the local time zone.
TimeZone^ localZone = TimeZone::CurrentTimeZone;
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.
// ( CultureInfo::CurrentCulture->Name == S"en-US" ) returns False.
if ( CultureInfo::CurrentCulture->Name->CompareTo( "en-US" ) == 0 )
{
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, 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
*/