BrazilUtils 0.2 - Features Tutorial - Date & Time

3 respostas
sergiotaborda

Esta api não está completa ainda, mas eis o básico do funcionamento:

Para não andarmos com Calendar às voltas existe a Classe estática CalendarContext nela definimos o Locale , o Calendar e o CalendarModel (já explico o que é) que vamos usar. Todas as classes deste pacote usam esse contexto internamente. Tudo isso é previamente definido com defaults locais portanto não é preciso pensar muito nessa classe.

CalendarModel é uma interface que permite saber se determinado ponto do tempo corresponde a feriado, a um fim-de-semana ou dia de trabalho
Por agora o StandardNoHolidayModel implementa isto de forma simples. Feriados não existem , dias trabalho são todos os que não são fim de semana e dias de fim de semana são sabado e domingo.

Logo estaremos implementando modelos de calendário com feriados.

CalendarDate first = new CalendarDate(2007,1,1);

   // representa o dia 1 de janeiro de 2007 

  first .isHoliday(); // pergunta se é feriado.

A resposta será não, porque o modelo em vigor no contexto indica que nenhum dia é feriado.

Podemos criar intervalos entre datas usando Interval ou TimeInterval
no fim dá no mesmo mas TimeInterval deixa explicito o que estamos fazendo
O intervalo pode ser criado assim

TimeInterval ano2007 = first.until (new CalendarDate(2007,12,31));

Na primeira fase é isto.

3 Respostas

Ironlynx

Fechei os outros 3 tópicos:
http://www.guj.com.br/posts/list/54356.java //Interval
http://www.guj.com.br/posts/list/54354.java //Money
http://www.guj.com.br/posts/list/54353.java //CryptoUtils

Para centralizarmos a discussão aqui!!!

Mas se o cara quiser um intervalo estadual?É só mexer em TimeInterval?

Sobre Money:

Acho um erro tentar evitar BD(mesmo sendo lenta…) para operações financeiras.Você já leu isso aqui:

http://www.devarticles.com/c/a/Java/How-the-BigDecimal-Class-Helps-Java-Get-its-Arithmetic-Right/

Quanto a CryptoUtils eu prefiro que tenha um pack só para ela(fora do barcode), e com algo mais do que MD5.Pq não AES-128 com uma classe cifradora e outra decifradora???

sergiotaborda

Ironlynx:
Fechei os outros 3 tópicos:
http://www.guj.com.br/posts/list/54356.java //Interval
http://www.guj.com.br/posts/list/54354.java //Money
http://www.guj.com.br/posts/list/54353.java //CryptoUtils

Para centralizarmos a discussão aqui!!!

Mas se o cara quiser um intervalo estadual?É só mexer em TimeInterval?

Não. TimeInterval só aceita TimePoint como menbro ,mas Interval aceita qq objecto ordenável. “intervalo estadual” não sei o que é , mas se “estadual” é ordenável use Interval. Concerteza “estadual” não é um TimePoint, portanto nem ha como usar TimeInterval.

É um erro usar BigDecimal para trabalhar com money por causa do Currency.getDefaultFractionDigits(). É muito mais complicado. Além disso, como as contas são apenas feitas com long , ou seja inteiros, não ha problema de arredondamento nem temos que usar ROUND_HALF_EVEN.
Procure no google por : Money Pattern.

De fato ficou no pacote errado. teria que ser org.brasilutils.crypto, tal como indiquei no tutorial.
Usar classes cifradores e decifradoras é o que o java padrão faz, então é um desperdicio reinventar a rodae torna-se pouco util, mas pode adicionar um método toAES128(byte[]) e fromAES128()

Ironlynx

Vou tar uma olhada. :smiley:

Na verdade, queria algo além de um hash md5.AES eu tenhoaté exemplo do Thingol pronto(em anexo), mas penso em derrepente, SHA-192, só para termos uma opção melhor(um pouco além do trivial)???

Criado 10 de março de 2007
Ultima resposta 12 de mar. de 2007
Respostas 3
Participantes 2