Informativo! como somar datas!

6 respostas
Tacio_Dias_Palhao_Me

E aí galera!

Bom, vou direto ao ponto…

Não é só dúvida minha, muita gente gostaria de saber incrementar datas, e eu descobri a pouco tempo

bom, vamos lá, é meio “acochambramento de código” mas funciona (não testei pra ano bissexto)

public static void main(String[] args) {
		
		//criando um dateFormat
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		//Pegando a data de hoje do sistema para criar um timestamp que será formatado pelo
		//objeto simpleDateFormat
		String dataDeHoje = sdf.format(new Timestamp(System.currentTimeMillis()));
		
		
		char[] cDias = new char[2];
		char[] cMeses = new char[2];
		char[] cAno = new char[4];
		
		//pegando caracter por caracter de dia da string formatada
		cDias[0] = dataDeHoje.charAt(0);
		cDias[1] = dataDeHoje.charAt(1);
		//pegando caracter por caracter de mês da string formatada
		cMeses[0] = dataDeHoje.charAt(3);
		cMeses[1] = dataDeHoje.charAt(4);
		//pegando caracter por caracter de ano da string formatada
		cAno[0] = dataDeHoje.charAt(6);
		cAno[1] = dataDeHoje.charAt(7);
		cAno[2] = dataDeHoje.charAt(8);
		cAno[3] = dataDeHoje.charAt(9);
		
		//O Construtor da classe String aceita um vetor de caracteres
		//como parâmetro, isso explica pq eu criei os vetores
		String dia = new String(cDias);
		String mes = new String(cMeses);
		String ano = new String(cAno);
		
		//Criando um timestamp 
		Timestamp tsDiaMaisSeteDias = criarTimeStamp(dia,mes,ano);
		
		String dataMaisSeteDias = sdf.format(tsDiaMaisSeteDias);
		
		System.out.println(dataDeHoje);
		System.out.println(dataMaisSeteDias);
		
	}

	private static Timestamp criarTimeStamp(String dia, String mes, String ano) {
		//aqui estou criando um objeto GregorianCalendar e passando pra ele
		//dia mes e ano, mas como inteiros que é o que ele aceita
		Calendar cal = new GregorianCalendar();
		cal.set(Calendar.DATE,Integer.parseInt(dia)+7);//coloquei 7 mas pode colocar
		cal.set(Calendar.MONTH,Integer.parseInt(mes)-1);//qualquer inteiro alí
		cal.set(Calendar.YEAR,Integer.parseInt(ano));
		//o método cal.getTimeMilis() retorna em long o "resultado do processamento"
		return new Timestamp(cal.getTimeInMillis());
	}

6 Respostas

rafaelglauber

Oi,

http://www.guj.com.br/posts/list/34486.java

Javabuntu

ham?! :shock:

por curiosidade, já ouviu falar em Calendar?

maxguzenski

1º) muita gente não lê a api

// data de hoje + 7 dias
Calendar.getInstance().add(Calendar.DATE, 7);

2º) Não testei, mas seu codigo não funciona quando +7 dias muda o mês (e ano).

Tacio_Dias_Palhao_Me

Sempre tem alguem que faz de um jeito mais facil .-.

hahaha muito obrigado galera ^^

lrgalego

Te apresento o método add

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html
Primeiro método dessa classe chamada… Calendar

Lembre-se a API é sua amiga :wink:

Tacio_Dias_Palhao_Me

pois é… eu sou “mudo” de não perguntar pra ela as vezes =P

Criado 6 de outubro de 2008
Ultima resposta 6 de out. de 2008
Respostas 6
Participantes 5