/*** Copyright (c) 2013 Hércules S. S. José Este arquivo é parte do programa EncontreAquiPeças. EncontreAquiPeças é um software livre; você pode redistribui-lo e/ou modificá-lo dentro dos termos da Licença Pública Geral Menor GNU como publicada pela Fundação do Software Livre (FSF); na versão 2.1 da Licença. Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÂO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral Menor GNU em português para maiores detalhes. Você deve ter recebido uma cópia da Licença Pública Geral Menor GNU sob o nome de "LICENSE.TXT" junto com este programa, se não, acesse o site HSlife no endereco www.hslife.com.br ou escreva para a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. Para mais informações sobre o programa EncontreAquiPeças e seu autor acesse o endereço www.hslife.com.br, pelo e-mail contato@hslife.com.br ou escreva para Hércules S. S. José, Av. Ministro Lafaeyte de Andrade, 1683 - Bl. 3 Apt 404, Marco II - Nova Iguaçu, RJ, Brasil. */ package br.com.hslife.encontreaquipecas.util; import java.math.BigDecimal; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.text.Normalizer; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Util { /** Seção de constantes **/ public static final String DATAHORA = "datahora"; public static final String DATA = "data"; public static final String HORA = "hora"; public static final String DATABASE = "database"; private Util() { // Esta classe não pode ser instanciada } public static String MD5(String texto) { String sen = ""; MessageDigest md = null; try { md = MessageDigest.getInstance("MD5"); BigInteger hash = new BigInteger(1, md.digest(texto.getBytes())); sen = hash.toString(16); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return sen; } public static String SHA1(String texto) { String sen = ""; MessageDigest md = null; try { md = MessageDigest.getInstance("SHA-1"); BigInteger hash = new BigInteger(1, md.digest(texto.getBytes())); sen = hash.toString(16); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return sen; } public static String moedaBrasil(double valor) { NumberFormat formatarMoeda = NumberFormat.getCurrencyInstance(new Locale("pt","BR")); return formatarMoeda.format(valor); } public static String formataDataHora(Date dataHora, String opcao) { SimpleDateFormat formata = new SimpleDateFormat("dd/MM/yyyy hh:mm"); if (dataHora == null) return ""; if (opcao.equals(Util.DATAHORA)) { formata = new SimpleDateFormat("dd/MM/yyyy hh:mm"); } if (opcao.equals(Util.DATA)) { formata = new SimpleDateFormat("dd/MM/yyyy"); } if (opcao.equals(Util.HORA)) { formata = new SimpleDateFormat("hh:mm"); } if (opcao.equals(Util.DATABASE)) { formata = new SimpleDateFormat("yyyy-MM-dd"); } return formata.format(dataHora); } /* * Retorna o primeiro dia do mês anterior a partir da data atual */ public static Date primeiroDiaMesAnterior() { // Pega a data atual Calendar dataAtual = Calendar.getInstance(); // Seta para o mês anterior dataAtual.add(Calendar.MONTH, -1); // Seta para o primeiro dia do mês dataAtual.set(Calendar.DAY_OF_MONTH, 1); // Retorna o resultado return dataAtual.getTime(); } /* * Retorna o primeiro dia do mês anterior a partir da data atual */ public static Date ultimoDiaMesAnterior() { // Pega a data atual Calendar dataAtual = Calendar.getInstance(); // Seta para o primeiro dia do mês dataAtual.set(Calendar.DAY_OF_MONTH, 1); // "Rola" para o dia anterior do ano dataAtual.add(Calendar.DAY_OF_YEAR, -1); // Retorna o resultado return dataAtual.getTime(); } /* * Retorna o primeiro dia do mês atual */ public static Date primeiroDiaMesAtual() { // Pega a data atual Calendar dataAtual = Calendar.getInstance(); // Seta para primeiro dia do mês dataAtual.add(Calendar.DAY_OF_MONTH, 1); // Retorna o resultado return dataAtual.getTime(); } /** * Remove todos os acentos da string passada como parâmetro * @param acentuada string a ter os acentos removidos * @return nova string sem os acentos */ public static String removerAcentos(String acentuada) { CharSequence cs = new StringBuilder(acentuada); return Normalizer.normalize(cs, Normalizer.Form.NFKD).replaceAll("\\p{InCombiningDiacriticalMarks}+", ""); } /* * Arredonda valores reais para duas casas decimais. */ public static double arredondar(double valor) { BigDecimal valorAArredondar = new BigDecimal(valor); valorAArredondar.setScale(2, BigDecimal.ROUND_CEILING); return valorAArredondar.doubleValue(); } /* * Verifica se o e-mail informado é válido. */ public static boolean validaEmail(String email) { Pattern p = Pattern.compile("[a-zA-Z0-9]+[a-zA-Z0-9_.-]+@{1}[a-zA-Z0-9_.-]*\\.+[a-z]{2,4}"); Matcher m = p.matcher(email); boolean matchFound = m.matches(); if (matchFound) { return true; } else { return false; } } public static String montarString(String[] strings) { StringBuilder messageBuilder = new StringBuilder(); for (String s : strings) { messageBuilder.append(s); messageBuilder.append("\n\n"); } return messageBuilder.toString(); } // Verifica se o CNPJ informado é válido // Retorna true se o CNPJ é válido public static boolean validCnpj(String cnpj) { int soma = 0, aux, dig; if (cnpj.length() != 14) { return false; } String cnpj_calc = cnpj.substring(0, 12); char[] chr_cnpj = cnpj.toCharArray(); /* Primeira parte */ for (int i = 0; i < 4; i++) { if (chr_cnpj[i] - 48 >= 0 && chr_cnpj[i] - 48 <= 9) { soma += (chr_cnpj[i] - 48) * (6 - (i + 1)); } } for (int i = 0; i < 8; i++) { if (chr_cnpj[i + 4] - 48 >= 0 && chr_cnpj[i + 4] - 48 <= 9) { soma += (chr_cnpj[i + 4] - 48) * (10 - (i + 1)); } } dig = 11 - (soma % 11); cnpj_calc += (dig == 10 || dig == 11) ? "0" : Integer.toString(dig); /* Segunda parte */ soma = 0; for (int i = 0; i < 5; i++) { if (chr_cnpj[i] - 48 >= 0 && chr_cnpj[i] - 48 <= 9) { soma += (chr_cnpj[i] - 48) * (7 - (i + 1)); } } for (int i = 0; i < 8; i++) { if (chr_cnpj[i + 5] - 48 >= 0 && chr_cnpj[i + 5] - 48 <= 9) { soma += (chr_cnpj[i + 5] - 48) * (10 - (i + 1)); } } dig = 11 - (soma % 11); cnpj_calc += (dig == 10 || dig == 11) ? "0" : Integer.toString(dig); return cnpj.equals(cnpj_calc); } }