[RESOLVIDO]Problema com Data

10 respostas
fabricioempresa

Bem pessoal!

Sei que existem muito tópicos falando sobre datas porém não estou conseguindo resolver meu problema.

Segue:

Tenho um jtextfield que recebe uma data ex:12/05/2010

Gostaria de saber como tirar um dia desta data.

Não estou conseguindo fazer isso pois o texto do jtextfield vem retornando uma string e não consigo tirar um dia.

Desde já agradeço a todos que me responderem.

10 Respostas

fabiocsilva

Vou dar uma dica: SimpleDateFormat + Calendar …

renanedpedroso

Concordo com o Fábio, utilize a classe Calendar.

Exemplo no Calendar:

//instancia com a data atual
Calendar data = Calendar.getInstance();

//adicionando um dia.
data.set(Calendar.DAY_OF_MONTH, data.get(Calendar.DAY_OF_MONTH) + 1);

Ah, se precisar converter de java.util.Date pra Calendar use:

public static Calendar toCalendar(java.util.Date data) {
    if (data == null) {
        return null;
    }
    Calendar retorno = Calendar.getInstance();
    retorno.setTime(data);
    return retorno;
}

Espero ter ajudado.

Abraço!

fabricioempresa

Verei a melhor forma e ja posto como ficou.

guisantogui

pode usar o metodo subString(desteChar, ateEste) e ir montando uma nova instancia de Date com os valores

mas eh meio gambiarrado :mrgreen:

L

ai espero que ajude.
t+

private Date initDataInicial() {
		Calendar c = null;
		try {
			String suaData = "12/10/2009";
			SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

			Date data = sdf.parse(suaData);

			c = Calendar.getInstance();
			c.setTime(data);
				c.add(Calendar.DAY_OF_MONTH, 1);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return c.getTime();
	}
renanedpedroso

Essa história de subString é bem gambiarra mesmo.
hehehe

Pode render várias dores de cabeça.

É preferível não reinventar a roda, usando o Calendar.

:smiley:

Abraço!

fabricioempresa

BEm pessoal consegui de uma forma bem mais fácil mas acredito que não a ideal

mas ai vai:

Date dt = new SimpleDateFormat(ddMMyy).parse(JtextField.getText());
        dt.setHours(dt.getHours()-24);

Será que realmente pode ser assim??

Desde já agradeço a colaboração de todos.

A

te aconselho a usar o calendar, como vc já tem uma referência para Date, passe esta referência para o Calendar.

o exemplo do lgweb é perfeito para o seu caso.

alguns exemplos para se trabalhar com data: http://preclog.blogspot.com/2007/09/trabalhando-com-datas-no-java.html

fabiocsilva

Já que não deixaram o Fabrício resolver sozinho, vou acabar com isso :smiley:

O lgweb postou a solução quase correta. Como você falou em tirar um dia, o correto seria

c.add(Calendar.DAY_OF_MONTH, -1);
fabricioempresa

Eh realmente a solução do lgWeb eh boa mesmo. E funcionou.

Desde já agradeço a todos.

Criado 19 de março de 2010
Ultima resposta 19 de mar. de 2010
Respostas 10
Participantes 6