Alguém pode explicar como um DaylightSavingsRule pode ter um “StartMonth” depois de “EndMonth”?

StackOverflow https://stackoverflow.com/questions/824641

  •  05-07-2019
  •  | 
  •  

Pergunta

Usando C # (framework .NET), eu estou loop através de todos os TimeZones e seus AdjustmentRules ... e para "Horário padrão Mauritius" {(GMT + 04: 00) Port Louis)} - a regra de ajuste é da seguinte forma:

IsFixed = false;
DaylightTransitionStart.Month = 10;
DaylightTransitionEnd.Month = 1;

Pelo que eu entendo, 'IsFixed = falsos' significa que eu não usar o "StartDate" e campos "EndDate" ... mas sim, eu preciso usar o DaylightTransitionStart e End para determinar dinamicamente se o tempo está em horário de verão ou não.

O problema aqui é que, para cerca de 30 regras de transição, o "StartMonth" é após o "EndMonth"

Como pode DaylightSavingsTime start 'out 2008' in e terminam em 'janeiro 2008'?

Por favor, ajude-me a entender isso ... uma vez que eu passar este obstáculo, eu deveria ter um completo "converter qualquer momento de e para UTC com qualquer fuso horário para toda a história" função SQL escrita.

Foi útil?

Solução

Um período de tempo não pode logicamente acabar antes de começar, mas talvez você está assumindo que estes meses se referir a meses do mesmo ano, quando na verdade outubro pode ser em 2008, mas Jan é em 2009.

Pense nisso como uma-lista ligada circular.

O DaylightTime usos de classe a DateTime para ambos início e final do período de verão, daí tanto especificar um ano.

Outras dicas

Não seria este o caso para os países ao sul do equador?

Há essa coisa chamada do hemisfério sul. Talvez você tenha ouvido falar dele.

Na Austrália horário de verão começa em torno de outubro e termina em torno de Março (nos estados que têm-lo).

poderia ser no hemisfério sul, DST começa em outubro e termina em março em algumas partes da Austrália

Dois anos diferentes. por exemplo. início do ano 09 final do ano 10

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top