Comparando o ano de um Date com um Int

1 resposta
J

Olá,

Estou com uma situação em que preciso compara várias datas com um ano informados pelo usuário. Acontece que isso funciona:

(o.isVendido() && o.getDataVenda().getYear() == df.parse(jTextField16.getText()).getYear())

Mas deste modo o usuário é obrigado a informar a data inteira, eu preciso que ele informe só o ano (int). Fiz isso então:

(o.isVendido() && o.getDataVenda().getYear() == Integer.parseInt(jTextField16.getText())

Mas por algum motivo não funciona. Alguém pode me dar uma dica?

1 Resposta

matheuslmota

Você não deve usar o método getYear, pois ele é um método deprecated e possui alguns problemas. Ao invés disso, use Calendar e SimpleDateFormat:

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


public class Main {
	public static void main(String[] args) {
		DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
		Calendar calendar = Calendar.getInstance();
		try {
			calendar.setTime(dateFormat.parse("01/01/2012"));
			int ano = calendar.get(Calendar.YEAR);
			System.out.println(ano);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
Criado 17 de novembro de 2012
Ultima resposta 17 de nov. de 2012
Respostas 1
Participantes 2