Oi pessoal
O GregorianCalendar tem um método setLenient que se estiver falso, ele vai soltar exceções no caso de uma data não ser real, isto é, 31 de fevereiro, -2 de abril, assim por diante.
Mas eu passo false para ele, e depois seto o dia para 333 de 333 de 33333, e ele nem reclama!
import java.util.GregorianCalendar;
public class MalditoGregorianCalendar {
public static void main(String a[]) {
GregorianCalendar gc = new GregorianCalendar();
gc.setLenient(false);
gc.set(333, 333, 333);
}
}
Eu poderia fazer IFs, usando o getMaximum(field) e tal, mas queria u jeito bem mais simples, alguem sabe?
Essa funcao eh meio estranha… ela so tem efeito depois que vc setou a data, como mostrado no exemplo abaixo…
import java.util.GregorianCalendar;
import java.util.Calendar;
public class MalditoGregorianCalendar {
public static void main(String a[]) {
GregorianCalendar gc = new GregorianCalendar();
gc.set(333, 333, 333);
gc.setLenient(false);
gc.add(Calendar.MONTH, 1);
}
}
Rafael
Ou melhor, a exception nao ocorre na hora de setar a data, mas sim na hora de fazer alguma acao, como abaixo:
import java.util.GregorianCalendar;
import java.util.Calendar;
public class MalditoGregorianCalendar {
public static void main(String a[]) {
GregorianCalendar gc = new GregorianCalendar();
gc.setLenient(false);
gc.set(Calendar.YEAR, 2000);
gc.set(Calendar.MONTH, 01);
gc.set(Calendar.DAY_OF_MONTH, 100);
System.out.println(gc.get(Calendar.YEAR));
}
}
Rafael
é
eu queria uma que tivesse um isValid, ou algo assim
[quote=Paulo Silveira]é
eu queria uma que tivesse um isValid, ou algo assim[/quote]
Cria um isValid e deixa ele escondido 