Classe PersianCalendar

Este artigo fornece observações complementares à documentação de referência para essa API.

O calendário persa é usado na maioria dos países/regiões onde é falada a língua persa, embora algumas regiões usem nomes de meses diferentes. O calendário persa é o calendário oficial do Irã e do Afeganistão, e é um dos calendários alternativos em regiões como Cazaquistão e Tajiquistão.

Observação

Para obter informações sobre como usar a classe PersianCalendar e as outras classes de calendário no .NET, consulte Como trabalhar com calendários.

O calendário persa é um calendário solar islâmico e começa a partir do ano da Hégira, que corresponde a 622 d.C., o ano em que Maomé (que a paz esteja com ele) migrou de Meca para Medina.

O calendário persa é baseado em um ano solar e tem aproximadamente 365 dias de duração. Um ano passa por quatro estações, e um novo ano começa quando o sol parece cruzar o equador do hemisfério sul para o hemisfério norte, como visto do centro da Terra. O ano novo marca o primeiro dia do mês de Farvardin, que é o primeiro dia da primavera no hemisfério norte. Por exemplo, a data de 21 de março de 2002 d.C. corresponde ao primeiro dia do mês de Farvardin no ano 1381 Anno Persico.

Cada um dos primeiros seis meses no calendário persa tem 31 dias, cada um dos próximos cinco meses tem 30 dias, e o último mês tem 29 dias em um ano comum e 30 dias em um ano bissexto. Um ano bissexto é um ano que, quando dividido por 33, tem um restante de 1, 5, 9, 13, 17, 22, 26 ou 30. Por exemplo, o ano 1370 é um ano bissexto porque dividi-lo por 33 produz um restante de 17. Há aproximadamente oito anos bissextos em cada ciclo de 33 anos.

A classe PersianCalendar e as versões do .NET Framework

A partir do .NET Framework 4.6, a classe PersianCalendar usa o algoritmo astronômico solar islâmico em vez de um algoritmo observacional para calcular datas. Isso torna a implementação de PersianCalendar consistente com o calendário persa em uso no Irã e no Afeganistão, os dois países onde o calendário persa é mais amplamente utilizado. A alteração afeta todos os aplicativos em execução no .NET Framework 4 ou posterior se o .NET Framework 4.6 estiver instalado.

Como resultado do algoritmo alterado:

  • Os dois algoritmos devem retornar resultados idênticos ao converter datas entre 1800 e 2123 no calendário gregoriano.

  • Os dois algoritmos podem retornar resultados diferentes ao converter datas antes de 1800 e depois de 2123 no calendário gregoriano.

  • O valor da propriedade MinSupportedDateTime foi alterado de 21 de março de 0622 no calendário gregoriano para 22 de março de 0622 no calendário gregoriano.

  • O valor da propriedade MaxSupportedDateTime foi alterado do 10º dia do 10º mês do ano 9378 no calendário persa para o 13º dia do 10º mês do ano 9378 no calendário persa.

  • O método IsLeapYear pode retornar um resultado diferente do que retornava anteriormente.

Usar a classe PersianCalendar

Os aplicativos usam um objeto PersianCalendar para calcular datas no calendário persa ou converter entre datas persas para gregorianas e vice-versa.

Você não pode usar um objeto PersianCalendar como o calendário padrão para uma cultura. O calendário padrão é especificado pela propriedade CultureInfo.Calendar e deve ser um dos calendários retornados pela propriedade CultureInfo.OptionalCalendars. Atualmente, a classe PersianCalendar não é um calendário opcional para qualquer cultura compatível com a classe CultureInfo e, consequentemente, não pode ser um calendário padrão.