[quote=eliangela][quote=andredf][quote=AbelBueno]Via de regra, você deve usar as classes para manipulação de datas para esse tipo de cálculo.
Para este caso, como a data está no formato AAAAMMDD, você pode simplesmente transformar a string em long.
O maior valor será posterior.[/quote]
Neste caso, o problema é que eu preciso acrescentar um ou mais dias em uma das datas e aí o cálculo dá errado.
Por exemplo, supondo que a variável B tenha o conteúdo "20120331". Transformando-a em long seria 20120331.
Eu preciso saber se a data contida na variável A é posterior à data B mais um dia. Como?
[/quote]
Olá, André!
Pra vc comparar datas é só fazer como foi sugerido. Se vc transformar a data (YYYYMMDD) em long funciona assim:
String data1 = "20120331";
String data2 = "20120401";
if (Long.parseLong(data1) > Long.parseLong(data2)) {
System.out.println("Data 1 é maior");
} else if (Long.parseLong(data1) < Long.parseLong(data2)) {
System.out.println("Data 2 é maior");
} else {
System.out.println("São iguais");
}
[/quote]
Cara eliangela, para o meu propósito, transformar as datas em long não funciona, pois quase sempre preciso comparar uma das datas com a outra data acrescentando ao menos um dia.
Se eu somar 1 à variável long com conteúdo 20120331, o seu conteúdo mudará para 20120332 e não para 20120401 (primeiro dia do mês seguinte), como seria o desejado.
[quote]
Agora, se vc quiser fazer cálculos com datas, acredito que se vc usar a classe GregorianCalendar vai funcionar.
Ex.:
int year = 2012;
int month = 3;
int day = 31;
GregorianCalendar g = new GregorianCalendar(year, month, day);
g.add(Calendar.DAY, 1); //adiciona 1 dia ao GregorianCalendar
System.out.println(g.get(Calendar.DAY));
Talvez esse sim funcione, mas precisarei “quebrar” a data que consta numa variável string (no formato AAAAMMDD) em três partes.
Obrigado a todos que estão me ajudando.
Espero ter ajudado![/quote]