Putz … Estou ficando meio loco com isso. Olha o que acontece.
Peguei uma data, que me passam numa string, ou seja, pra mim chega como “dd/MM/yyyy”. OK!
String strData = “dd/MM/yyyy”;
Dai eu pego cada pedaço em variaveis string.
int dia = Integer.parseInt(String.valueOf( strData ).substring(0, 2));
int mes = Integer.parseInt(String.valueOf( strData ).substring(3, 5));
int ano = Integer.parseInt(String.valueOf( strData ).substring(6, 10));
Dai eu crio uma variavel Calendar.
Calendar ultData = Calendar.getInstance();
Dai eu seto essa ultData com a data passada em String.
ultData.set( ano, mes, dia );
Dai eu preciso somar 3 dias.
ultData.add(Calendar.DATE, 3 );
:arrow: A pergunta é: Como ver se a Data Atual é maior do que a ultData ???
É por que não esta funcionando direito … pois testando varias vezes com a mesma ultData, hora funciona com if = true e hora não funciona com if = false.
:lol: Alguém, por favor, poderia me dizer se essa maneira esta correta ???
// TesteCal.java
import java.util.*;
public class TesteCal {
public static void main(String[] args) {
int dia = 31;
int mes = 5; // maio
int ano = 2004;
GregorianCalendar cal = new GregorianCalendar(ano, mes-1, dia);
System.out.println("cal = " + cal);
cal.add(Calendar.DATE, 1);
System.out.println("cal = " + cal);
GregorianCalendar cal2 = new GregorianCalendar(ano, mes-1, dia);
System.out.println("cal2 = " + cal2);
if (cal2.before(cal))
System.out.println("cal2 < cal... OK");
if (cal.after(cal2))
System.out.println("cal > cal2... OK");
}
}
Lembre-se de subtrair 1 do mês que estiver ajustando na data, isso pq a GregorianCalendar() trata JANEIRO=0 e DEZEMBRO=11…; :?