Como se faz para transformar um date em uma string que contenha a data por extenso…
Presciso que a string retornada esteja da seguinte forma
Ex: 24/05/2012 -> aos vinte e quatro dias do mês de maio do ano de dois mil e doze
primeiramente fiz o seguinte método …mas ele me retorna 24 de maio de 2012 e presciso de tudo por extenso…até os números
/**
* Retorna a data passada como parametro por extenso
* @param data
* @return
*/
public String getDataPorExtenso(Date data){
DateFormat dfmt = new SimpleDateFormat("d 'de' MMMM 'de' yyyy");
return dfmt.format(data);
}
amigo através do código abaixo já consegui isolar o dia e ano em strings de números, o problema agora é transformá-as em texto:
DateFormatdfmt=newSimpleDateFormat("'aos 'd' dias do mês de 'MMMM' de 'yyyy");Datehoje=Calendar.getInstance(Locale.getDefault()).getTime();Stringa=dfmt.format(hoje);Stringdia="";Stringano="";for(intb=4;b<=a.length();b++){//começa no 4 pra já livrar o aos (com espaço)if((a.substring(b+1,b+2).equals(" "))){dia=a.substring(b,b+1);//dia com um dígito}else{dia=a.substring(b,b+2);//dia com dois digitos}break;}ano=a.substring(a.length()-4,a.length());
L
leopoldof
Obrigado pelas soluções e sujestões…consegui resolver…
Juntando as idéias passadas por vocês…fiz da seguinte maneira…
Para pegar o mes faz a mesma coisa só mundando o parametro DAY_OF_MONTH para MONTH
depois para passar esses numeros por extenso usei a classe me passada nos links acima pelo SandroSoftwares e ErickRAR que na verdade são a mesma coisa…a mesma classe, porém modifiquei e coloquei uma flag nela para informar o uso ou não uso de moeda… ou seja para retornar uma string com “reais” e “centavos” ou retornar somente o número por extenso… e por fim depois é só unir as palavras e criar a frase… esses métodos servirão para várias outras etapas do sistema… assim ficou uma coisa útil e reaproveitável…