package br.com.chicobentojr.minhaeiro.utils;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

/**
 * Created by Francisco on 08/02/2016.
 */
public class Extensoes {
    public static class STRING {
        public static String toBrazilianDate(String date) {
            String[] values = date.split("/");
            return values[1] + "/" + values[0] + "/" + values[2];
        }

        public static String obterDataCompleta(String data) {
            try {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
                SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");

                if (data.length() == "dd/MM/yyyy".length()) {
                    return sdf.format(sdf2.parse(data));
                } else {
                    return sdf2.format(sdf.parse(data));
                }
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return data;
        }
    }

    public static class LAYOUT {
        public static String valor(double valor) {
            boolean negativo = valor < 0;
            valor = !negativo ? valor : valor * -1;

            String strValor = String.valueOf(valor);
            String[] array = strValor.split("\\.");

            String decimal = array[1].length() == 2 ? array[1] : array[1] + "0";
            String tempInteiros = array[0];
            String inteiros = "";

            int indice = 0;
            for (int i = tempInteiros.length() - 1; i >= 0; i--) {
                if (indice == 3) {
                    inteiros = tempInteiros.charAt(i) + "." + inteiros;
                    indice = 0;
                } else {
                    inteiros = tempInteiros.charAt(i) + inteiros;
                }
                indice++;
            }

            return (negativo ? "- " : "") + "R$ " + inteiros + "," + decimal;
        }

        public static String data(String data) {
            Calendar calendar = Calendar.getInstance();
            Calendar agora = Calendar.getInstance();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
            SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");

            try {
                if (data.length() == "dd/MM/yyyy".length()) {
                    calendar.setTime(sdf2.parse(data));
                } else {
                    calendar.setTime(sdf.parse(data));
                }

                int ano = calendar.get(Calendar.YEAR);
                int mes = calendar.get(Calendar.MONTH) + 1;
                int dia = calendar.get(Calendar.DAY_OF_MONTH);

                int anoAgora = agora.get(Calendar.YEAR);
                int mesAgora = agora.get(Calendar.MONTH) + 1;
                int diaAgora = agora.get(Calendar.DAY_OF_MONTH);

                if (ano == anoAgora && mes == mesAgora) {
                    if (dia == diaAgora)
                        return "Hoje";
                    else if (dia == diaAgora - 1)
                        return "Ontem";
                    else if (dia >= diaAgora - 7)
                        return diaAgora - dia + " Dias atrás";
                    else if (dia >= diaAgora - 7 * 4)
                        return "Semanas atrás";
                } else if (ano == anoAgora && mes == mesAgora - 1) {
                    return "Meses atrás";
                } else {
                    return sdf2.format(calendar.getTime());
                }

            } catch (ParseException e) {
                e.printStackTrace();
            }
            return "";
        }
    }
}

@@ -3079,16 +3079,159 @@
 Ontem%22;%0A
+                    else if (dia %3E= diaAgora) %7B%0A                        return  %22Daqui a %22 + (dia - diaAgora) + %22 dias%22;%0A                    %7D%0A
         
@@ -3322,17 +3322,17 @@
 dia + %22 
-D
+d
 ias atr%C3%A1
@@ -3539,18 +3539,18 @@
 n %22M
-eses atr%C3%A1s
+%C3%AAs passado
 %22;%0A 

Corrige issue #7