Formatação com calendários alternativos no Flex

Este artigo foi escrito originalmente em Inglês. Textos em outros idiomas foram fornecidos via tradução automática.

Datas podem ser formatadas em vários calendários no Flex SDK. Vamos explorar como isto funciona..

O Flex SDK permite que você formate uma data determinada em "calendários alternativos", além do calendário Gregoriano. A convenção de indústria se refere a todos os calendários não-gregorianos como calendários alternativos. Para usar um calendário alternativo, é necessário um pouco de cuidado no seu aplicativo Flex.

Tipos de calendários

Antes de analizar-mos os usos de calendário alternativo no Flex SDK, vamos dar uma olhada em alguns calendários do mundo para que você se familiarize com toda essa conversa sobre calendários. Por favor, esteja ciente de, que só posso descrever os usos básicos de alguns calendários alternativos comuns. Há complexidades com cada um dos calendários que não estão sendo explicitamente indicadas. Recomendo que você investigue mais antes de usá-los.

Calendário gregoriano

Este é o calendário mais sistemas oferecem como padrão. Você provavelmente conhece este calendário, mas já aqui estão algumas das características: Há sempre 12 meses em um ano e cada mês tem 28 para 31 dia. O número de dias em cada um dos meses são fixadas (30 ou 31 dia) except for the second month (Fediairo), que inclui 28 (não salto de anos-) or 29 days (anos bissextos). O número de dias em um ano é fixo (365 or 366 days). (Fevereiro), que inclui 28 (não salto de anos-) ou 29 dia (anos bissextos). O número de dias em um ano é fixo (365 ou 366 dia).

Calendário islâmico (Calendário Hijri)

Calendário islâmico é um dos calendários lunares. Há sempre doze meses, um ano. Cada mês tem ei-ther 29 ou 30 dia. Início de um mês é determinado observando a fase da lua (Religioso islâmico oulendar). Devido a esta natureza, não é muito possível prever as datas com o calendário religioso islâmico. Por uma questão de conveniência, existe a variante do calendário, Calendário civil islâmica, que determina as datas por meio de algum cálculo puramente matemático. Calendário civil islâmicos podem não ser precisos para eventos religiosos. Número de dias em um ano é 354 ou 355 dia. Por isso, o ano calendário islâmico e, no ano calendário gregoriano não são sincronizados.

Calendário japonês

Calendário japonês é muito semelhante com o calendário gregoriano. A diferença é a parte era e no ano. O calendário gregoriano tem vindo a utilizar o nome era mesmo para o passado 2,000 anos (AD; D.C.). Há também BC (Antes de Cristo) anos era, mas BC não são por apoiada por praticamente todos os aplicativos de calendário. Por outro lado, Calendário japonês era muda de nome quando há novo imperador. Portanto, a cada dez para um casal de 10 anos, existem novas eras. *1

*1 Antes da 1868, a mudança de nome era foram mais freqüentes, uma era durou apenas tão baixo quanto dois anos. Mas assim como o BC em gregoriano, não há muita demanda para ser capaz de lidar com as eras mais antigas em aplicações de hoje calendário.

Há muito mais tipos de calendários no mundo, mas eu espero que você tenha algumas idéias de como calendários podem variar.

Como usar os calendários alternativo no Flex SDK

Agora vamos olhar para o uso de calendários alternativos. Como você usa o calendário diferente do gregoriano no SDK do Flex? O um-ponder é usar a identificação de localidade.

A identificação de localidade pode opcionalmente conter tag calendário. Por exemplo:

ID locais Significado
a-IN Árabe usado na Arábia Saudita
ar-SA @ = calendário islâmico Árabe usado na Arábia Saudita. Calendário islâmico
pt-BR @ = calendário islâmico Inglês usado nos E.U.A.. Calendário islâmico.

Quando você precisa formatar uma data em um calendário alternativo, a tag calendário pode ser anexado à identificação de localidade. Aqui está um exemplo:

import spark.formatters.DateTimeFormatter;
private function calendarDemo():void
{
    var d:Date = new Date(2011, 9, 15);
    var dtf:DateTimeFormatter = new DateTimeFormatter();
    dtf.dateStyle = "long";
    dtf.timeStyle = "none";
 
    dtf.setStyle("locale", "en-US");
    trace("(1) " + dtf.format(d));
 
    dtf.setStyle("locale", "ar-SA");
    trace("(2) " + dtf.format(d));
 
    dtf.setStyle("locale", "ja-JP");
    trace("(3) " + dtf.format(d));
 
    dtf.setStyle("locale", "en-US@calendar=islamic");
    trace("(4) " + dtf.format(d));
 
    dtf.setStyle("locale", "ar-SA@calendar=islamic");
    trace("(5) " + dtf.format(d));
 
    dtf.setStyle("locale", "en-US@calendar=japanese");
    trace("(6) " + dtf.format(d));
 
    dtf.setStyle("locale", "ja-JP@calendar=japanese");
    trace("(7) " + dtf.format(d));
}

Aqui está o resultado você pode obter.

Por favor note que o resultado pode variar de acordo com as plataformas em tempo de execução.

Limitações que você deve estar ciente de

Existem casais de limitações no atual Flash Player e Flex SDK para suporte de calendário alternativo.

  1. A classe Date pode lidar com datas apenas Gregorian.
  2. A classe DateTimeFormatter faísca pode formatar um objeto Date, mas característica de análise (traduzindo um Gregorian formatado ou não-gregoriano seqüência de data em um objeto Date) não está disponível. Inglês seqüência de data gregoriano pode ser analisado através do construtor da classe Date em algum grau.
  3. A disponibilidade de suporte alternativo Calendário e seu comportamento é dependente de plataforma. Por favor, verifique a plataforma se o apoio de calendário alternativo é importante para a sua aplicação.

Se você gostaria de saber mais sobre calendários alternativos, as entradas de calendário no Wikipedia é uma boa fonte.

2 pensamentos sobre “Formatação com calendários alternativos no Flex

  1. Pingback: Arabic month calendar | | CALENDÁRIO CALENDÁRIO SCHEDULECALENDAR

  2. Pingback: Cool Stuff com a plataforma Flash - 9/19/2011 | Síntese remoto

Deixe uma resposta