Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Método TimeZoneInfo.TransitionTime.CreateFloatingDateRule (DateTime, Int32, Int32, DayOfWeek)

 

Define uma alteração de tempo que usa uma regra de data flutuante (ou seja, uma alteração de tempo que ocorre em um dia específico de uma semana específica de um determinado mês).

Namespace:   System
Assembly:  mscorlib (em mscorlib.dll)

public static TimeZoneInfo.TransitionTime CreateFloatingDateRule(
	DateTime timeOfDay,
	int month,
	int week,
	DayOfWeek dayOfWeek
)

Parâmetros

timeOfDay
Type: System.DateTime

A hora em que o tempo de alteração ocorre. Esse parâmetro corresponde do TimeOfDay propriedade. Para obter detalhes, consulte Observações.

month
Type: System.Int32

O mês em que o tempo de alteração ocorre. Esse parâmetro corresponde do Month propriedade.

week
Type: System.Int32

A semana do mês em que ocorre uma alteração temporal. Seu valor pode variar de 1 a 5, com 5 que representa a última semana do mês. Esse parâmetro corresponde do Week propriedade.

dayOfWeek
Type: System.DayOfWeek

O dia da semana no qual alterar o tempo ocorre. Esse parâmetro corresponde do DayOfWeek propriedade.

Valor Retornado

Type: System.TimeZoneInfo.TransitionTime

Dados sobre a alteração de tempo.

Exception Condition
ArgumentException

O timeOfDay parâmetro tem um componente de data não padrão.

-ou-

O timeOfDay parâmetro não representam um número inteiro de milissegundos.

-ou-

O timeOfDay do parâmetro Kind propriedade não é DateTimeKind.Unspecified.

ArgumentOutOfRangeException

month é menor que 1 ou maior que 12.

-ou-

weeké menor que 1 ou maior que 5.

-ou-

O dayOfWeek parâmetro não é um membro do DayOfWeek enumeração.

Esse método cria uma regra de data flutuante (ou seja, uma alteração de tempo que ocorre em um dia específico de uma semana específica de um determinado mês). Por exemplo, uma alteração de tempo que ocorre no último domingo de outubro segue uma regra de data flutuante.

Para faz a transição do horário padrão para o horário de verão, o timeOfDay argumento representa o tempo de transição na hora de padrão do fuso horário. Para faz a transição do horário de verão para o horário padrão, ele representa o tempo de transição no horário de verão do fuso horário. Observe que este é um DateTime valor cujo ano, mês e valores de data deve todos igual a 1.

O exemplo a seguir cria as transições de fuso horário para um fuso horário imaginário usando uma regra de data fixa e uma regra de data flutuante. A regra de data flutuante define um ajuste de fuso horário que inicia às 2:00 no último domingo de março e termina às 3:00 no quarto domingo de outubro dos anos 1956 em diante.

// Declare necessary TimeZoneInfo.AdjustmentRule objects for time zone
TimeZoneInfo imaginaryTZ;
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment;
List<TimeZoneInfo.AdjustmentRule> adjustmentList = new List<TimeZoneInfo.AdjustmentRule>();
// Declare transition time variables to hold transition time information
TimeZoneInfo.TransitionTime transitionRuleStart, transitionRuleEnd;

// Define a fictitious new time zone consisting of fixed and floating adjustment rules 
// Define fixed rule (for 1900-1955)
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFixedDateRule(new DateTime(1, 1, 1, 2, 0, 0), 3, 15);
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFixedDateRule(new DateTime(1, 1, 1, 3, 0, 0), 11, 15);
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1900, 1, 1), new DateTime(1955, 12, 31), 
             delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment);
// Define floating rule (for 1956- )
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 3, 5, DayOfWeek.Sunday);
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 3, 0, 0), 10, 4, DayOfWeek.Sunday); 
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1956, 1, 1), DateTime.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment); 

// Create fictitious time zone   
imaginaryTZ = TimeZoneInfo.CreateCustomTimeZone("Fictitious Standard Time", new TimeSpan(-9, 0, 0), 
                "(GMT-09:00) Fictitious Time", "Fictitious Standard Time", 
                "Fictitious Daylight Time", adjustmentList.ToArray());

.NET Framework
Disponível desde 3.5
Retornar ao início
Mostrar: