quinta-feira, 4 de junho de 2009

Classe utilitaria Strings

package C_utils;

public abstract class Strings {

public static void main(String[] args) {
}

/**
*
* @param substituir: array de string a serem substituidas no texto
* @param por: String que substituira os trechos
* @param texto texto que contem as strings a serem substituidas
* @return retorna uma string com as substituições.
*/
public static String substituirTrechos(String[] substituir, String por, String texto) {
if (texto == null) {
return "";
}

for (String temp : substituir) {
texto = texto.replace(temp, por);
}
return texto;
}

/**
*
* @param tamanho da string para os espaços em branco
* @return retorna uma string com espaços em branco
*/
public static String espacosEmBranco(int tamanho) {
String temp = "";

for (int i = 1; i <= tamanho; i++) { temp += " "; } return temp; } /** * se o tamanho especificado for menor que o tamanho ja existente da string ele nao faz nada * @param texto string que devera ser modificada * @param tamanho tamanho que deve ficar a string * @param charPreencher caracter que preenchera os espaços vazios * @param ondePreencher se é "ATRAZ" ou na "FRENTE" da string * @return retorna a string modificada */ public static String defineTamanhoString(String texto, int tamanho, char charPreencher, String ondePreencher) { int sobra = tamanho - texto.length(); if (sobra < texto =" texto.substring(0,"> 0) {
String temp = "";
int i = 1;
while (i <= sobra) {
temp += charPreencher;
i++;
}
if (ondePreencher.equals("FRENTE")) {
texto = temp + texto;
} else {
texto = texto + temp;
}
texto = texto.substring(0, tamanho);
}
return texto;
}
}

quinta-feira, 28 de maio de 2009

Classe utilitaria Valida Cpf e Cnpj

Arquivo:CnpjCpf.java
Não esqueçam de incluir o pacote

package seupacote;

public class CnpjCpf {
/**
*
* @param str_cnpj cnpj a ser verificado
*
* @return se o valor for "" ou o cnpj for verdadeiro retorna true
*/
static public boolean VALIDACNPJ(String str_cnpj) {
str_cnpj = Strings.substituirTrechos(new String[]{"-", "/", "."}, "", str_cnpj.trim()).trim();

if (str_cnpj.equals("")) {
return true;
}

int soma = 0, aux, dig;
String cnpj_calc = str_cnpj.substring(0, 12);

if (str_cnpj.length() != 14) {
return false;
}
char[] chr_cnpj = str_cnpj.toCharArray();

/* Primeira parte */
for (int i = 0; i <>= 0 && chr_cnpj[i] - 48 <= 9) { soma += (chr_cnpj[i] - 48) * (6 - (i + 1)); } } for (int i = 0; i <>= 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 <>= 0 && chr_cnpj[i] - 48 <= 9) { soma += (chr_cnpj[i] - 48) * (7 - (i + 1)); } } for (int i = 0; i <>= 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 str_cnpj.equals(cnpj_calc);
}

public static boolean VALIDACPF(String cpf) {
int d1, d2;
int digito1, digito2, resto;
int digitoCPF;
String nDigResult;

cpf = Strings.substituirTrechos(new String[]{"-", "/", "."}, "", cpf.trim());

if (cpf.trim().equals("")) {
return true;
}

if (cpf.length() != 11) {
return false;
}

d1 = d2 = 0;
digito1 = digito2 = resto = 0;

for (int nCount = 1; nCount < cpf.length() - 1; nCount++) {
digitoCPF = Integer.valueOf(cpf.substring(nCount - 1, nCount)).intValue();

//multiplique a ultima casa por 2 a seguinte por 3 a seguinte por 4 e assim por diante.
d1 = d1 + (11 - nCount) * digitoCPF;

//para o segundo digito repita o procedimento incluindo o primeiro digito calculado no passo anterior.
d2 = d2 + (12 - nCount) * digitoCPF;
}
;

//Primeiro resto da divisão por 11.
resto = (d1 % 11);

//Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior.
if (resto < 2) {
digito1 = 0;
} else {
digito1 = 11 - resto;
}
d2 += 2 * digito1;

//Segundo resto da divisão por 11.
resto = (d2 % 11);

//Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior.
if (resto < 2) {
digito2 = 0;
} else {
digito2 = 11 - resto; //Digito verificador do CPF que está sendo validado.

}
String nDigVerific = cpf.substring(cpf.length() - 2, cpf.length());

//Concatenando o primeiro resto com o segundo.
nDigResult = String.valueOf(digito1) + String.valueOf(digito2);

//comparar o digito verificador do cpf com o primeiro resto + o segundo resto.
return nDigVerific.equals(nDigResult);
}

public static void main(String[] args) {
System.out.println(VALIDACNPJ("02998301000181") ? "OK" : "Incorreto");
}
}

segunda-feira, 25 de maio de 2009

Classe utilitaria para trabalhar com datas

Arquivo: Datas.java.
Cambada e so copiar e colar numa classe nova chamada Datas.
Não esqueçam de mudar o nome do pacote.
Abrass
Cristiano

package SeuPacote;

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.Format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
* versao 1.0
* @autor Cristiano Silveira
*/

public abstract class Datas {

public static void main(String[] args) {
System.out.println(Datas.Formatar("dd/MM/yyyy", getDataAtualCalendar().getTime()));
System.out.println(Datas.Formatar("dd/MM/yyyy", (Datas.addDias(Datas.getDataAtualCalendar(), 10).getTime())));
}

/**
*
* @param mascara mascara tipo yyyy-mm-dd hh:mm:ss
* @param data uma variavel data
* @return retorna uma string com a mascara data formatada
*/
public static String Formatar(String mascara, Date data) {
if (data == null) {
return "";
}
Format formato = new SimpleDateFormat(mascara);
return formato.format(data.getTime());
}

/**
* Adiciona um determinado numero de dias a uma Calendar
* @param calendar instancia de Calendar
* @param dias numero de dias a adicionar
* @return retorna um Calendar com os dias somados
*/
public static Calendar addDias(Calendar calendar, int dias) {
calendar.add(Calendar.DAY_OF_MONTH, dias);
return calendar;
}

/**
* Adiciona um determinado numero de dias a uma String
* @param data String com uma data valida
* @param dias numero de dias a adicionar
* @return retorna uma string com os dias somados
*/
public static String addDias(String data, int dias) {
Calendar calendar = stringToCalendar(data);
calendar = addDias(calendar, dias);

String dataStr = Formatar("dd/MM/yy", calendar.getTime());
return dataStr;
}

/**
* Verifica se a data é valida ou nao
* @param dateStr data a ser validada
* @return retorna true ou false
*/
public static boolean validarData(String dateStr) {
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
//definindo que se mesmo que a formatacao esteja certa ams a data errada, da false
df.setLenient(false);
Calendar cal = new GregorianCalendar();
try {
// gerando o calendar
cal.setTime(df.parse(dateStr));
} catch (ParseException ex) {
JOptionPane.showMessageDialog(null, "Data invalida!!");
return false;
}

// separando os dados da string para comparacao e validacao
String[] data = dateStr.split("/");
String dia = data[0];
String mes = data[1];
String ano = data[2];

// testando se hah discrepancia entre a data que foi
// inserida no caledar e a data que foi passada como
// string. se houver diferenca, a data passada era
// invalida
if ((new Integer(dia)).intValue() != (new Integer(cal.get(Calendar.DAY_OF_MONTH))).intValue()) {
// dia nao casou
return (false);
} else if ((new Integer(mes)).intValue() != (new Integer(cal.get(Calendar.MONTH) + 1)).intValue()) {
// mes nao casou
return (false);
} else if ((new Integer(ano)).intValue() != (new Integer(cal.get(Calendar.YEAR))).intValue()) {
// ano nao casou
return (false);
}

return (true);
}

/**
*
* @return uma instancia de Calendar com a data atual do computador
*/
public static Calendar getDataAtualCalendar() {
Date date = new Date();
Calendar c = Calendar.getInstance();
c.setTime(date);
return c;
}

public static Timestamp getDataAtualTimeStamp() {
return new Timestamp(getDataAtualCalendar().getTimeInMillis());
}

public static Date getDataAtualDate() {
return new Timestamp(getDataAtualCalendar().getTimeInMillis());
}

public static Timestamp getDataAtualTimeStampHoraZero(){
try {
return stringToTimeStamp(Formatar("dd/MM/yyyy", getDataAtualCalendar().getTime()));
} catch (ParseException ex) {
Logger.getLogger(Datas.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}

public static Calendar stringToCalendar(String data) {
Calendar cal = Calendar.getInstance();
cal.setTime(stringToDate(data));
return cal;
}

public static Date stringToDate(String data) {
try {
DateFormat formatter;
Date date;
formatter = new SimpleDateFormat("dd/MM/yyyy");
date = (Date) formatter.parse(data);
return date;
} catch (ParseException e) {
System.out.println("Exception :" + e);
}
return null;
}

public static java.sql.Date stringToSqlDate(String data) {
return new java.sql.Date(stringToCalendar(data).getTimeInMillis());
}

public static Timestamp stringToTimeStamp(String data) throws ParseException {
SimpleDateFormat sdf;
if (data.length() == 19) {
sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
} else {
sdf = new SimpleDateFormat("dd/MM/yyyy");
}
Date date = null;
date = sdf.parse(data);

return new java.sql.Timestamp(date.getTime());
}

public static Timestamp dateToTimeStamp(Date data) {
try {
return stringToTimeStamp(Formatar("dd/MM/yyyy", data));
} catch (ParseException ex) {
Logger.getLogger(Datas.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}

public static String getDiaSemanaExtenso(Calendar data) {
switch (data.get(Calendar.DAY_OF_WEEK)) {
case Calendar.SUNDAY:
return "Domingo";
case Calendar.MONDAY:
return "Segunda Feira";
case Calendar.TUESDAY:
return "Terça Feira";
case Calendar.WEDNESDAY:
return "Quarta Feira";
case Calendar.THURSDAY:
return "Quinta Feira";
case Calendar.FRIDAY:
return "Sexta Feira";
case Calendar.SATURDAY:
return "Sábado";
}
return null;
}
}

segunda-feira, 16 de março de 2009

Customizando os componentes graficos do NetBeans

Bom cambada. Visando dar produtividade aos projetos no netBeans, estou postando uma vídeo aula que ensina a customizar os componentes de acordo com nossa necessidade.
Lembram da famosa propriedade maxLength do componente Edit do Delphi? Pois é todos sabemos que o JTextField do Swing no java não tem. Pois é, mas com java é assim, se não tem a gente cria.
Espero que aproveitem
Abrasss no mais...