fork(1) download
  1. import java.util.*;
  2. import java.text.*;
  3.  
  4. public class Main {
  5. public static void main(String[] args) throws Exception {
  6. Date data = new GregorianCalendar(2014, Calendar.FEBRUARY, 11).getTime();
  7. Locale local = new Locale("pt","BR");
  8. DateFormat formato = new SimpleDateFormat(" 'de' MMMM 'de' yyyy",local);
  9. String dataFormatada = formato.format(data);
  10.  
  11. Calendar calendario = Calendar.getInstance();
  12. calendario.setTime(data);
  13. int dia = calendario.get(Calendar.DAY_OF_MONTH);
  14.  
  15. System.out.println(getDiaPorExtenso(dia) + dataFormatada);
  16. }
  17.  
  18. public static String getDiaPorExtenso(int dia) throws Exception {
  19. String dias[] = {"zero", "um", "dois", "três","quatro", "cinco", "seis", "sete", "oito", "nove"};
  20. String retorno = "";
  21.  
  22. if (dia < 1 || dia > 31) {
  23. throw new Exception("Não existe esse dia em nenhum mês do ano");
  24. }
  25. else if (dia < 10) {
  26. retorno = dias[dia];
  27. }
  28. else if (dia < 20) {
  29. retorno = new String[]{
  30. "dez", "onze", "doze", "treze", "quatorze", "quinze", "dezesseis", "dezessete", "dezoito", "dezenove"
  31. }[dia - 10];
  32. }
  33. else if (dia < 30) {
  34. if (dia == 20) {
  35. retorno = "vinte";
  36. }
  37. else {
  38. retorno = "vinte e " + dias[dia - 20];
  39. }
  40. }
  41. else {
  42. if (dia == 30) {
  43. retorno = "trinta";
  44. }
  45. else {
  46. retorno = "trinta e " + dias[dia - 30];
  47. }
  48. }
  49.  
  50. // Capitaliza apenas a primeira letra do dia.
  51. return retorno.substring(0, 1).toUpperCase() + retorno.substring(1);
  52. }
  53. }
Success #stdin #stdout 0.15s 321408KB
stdin
Standard input is empty
stdout
Onze de Fevereiro de 2014