Qual a data daqui à um Ano?

Como faço pra encontrar a data daqui à um ano?
O que eu tenho que mudar neste código?

import java.util.Date;

public class AmanhaErrado {
public static void main(String[] argsv) {
Date hoje = new Date();
Date amanha = new Date(hoje.getTime() + 246060*1000);
//24hs, 60min, 60seg, 1000ms

    System.out.println("Hoje:\t" + hoje);
    System.out.println("Proximo Ano:\t" + amanha);
}

}

use a classe calendar, la tem um metodo add(int, int) que recebe um campo a ser incrementado (ANO, DIA, MES…) e um inteiro correspondendo a quantidade que deve ser adicionada.

flw

[quote=“eudasio”]Como faço pra encontrar a data daqui à um ano?
O que eu tenho que mudar neste código?[/quote]
Se você quer necessariamente usar aquele código:
Date amanha = new Date(hoje.getTime() + 365*246060*1000);

Calendar cal = new GregorianCalendar(); //hora atual
cal.add(Calendar.YEAR,1); //adiciona 1 ano
cal.add(Calendar.MONTH,1); //adiciona 1 mês
cal.add(Calendar.DAY_OF_YEAR,1); //adiciona 1 dia
cal.add(Calendar.HOUR,1); //adiciona 1 hora
cal.add(Calendar.MINUTE,1); //adiciona 1 minuto

Eu fiz:
Codigo:

import java.util.Calendar;

public class SomaData {
public static void main(String[] argsv){
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR, 1);

System.out.println(“Proximo ano:\t” + c);
}
}

E o programa me retornou:

Proximo ano: java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=“America/Sao_Paulo”,offset=-10800000,dstSavings=3600000,useDaylight=true,transitions=129,lastRule=java.util.SimpleTimeZone[id=America/Sao_Paulo,offset=-10800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=9,startDay=8,startDayOfWeek=1,startTime=0,startTimeMode=0,endMode=3,endMonth=1,endDay=15,endDayOfWeek=1,endTime=0,endTimeMode=0]],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=1,YEAR=2006,MONTH=5,WEEK_OF_YEAR=25,WEEK_OF_MONTH=3,DAY_OF_MONTH=15,DAY_OF_YEAR=166,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=40,SECOND=42,MILLISECOND=150,ZONE_OFFSET=-10800000,DST_OFFSET=0]

Onde esta o erro deste codigo?
Eu queria apenas que ele me desse a hora e a data daqui a um ano.

Erro não tem nenhum… :wink:
O que acontece foi que vc mandou imprimir o valor do seu objeto Calendar

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
Calendar data = Calendar.getInstance();
data.add(Calendar.YEAR, 1);
String dataStr = dateFormat.format(data.getTime());
 System.out.println("Proximo ano:\t" + dataStr); 

esse código vai formatar a data mostrando dia/mes/ano hora:minuto:segundo daqui a um ano.

Blz? :wink:

[quote=“eudasio”]Eu fiz:
Codigo:

import java.util.Calendar;

public class SomaData {
public static void main(String[] argsv){
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR, 1);

System.out.println(“Proximo ano:\t” + c);
}
}

E o programa me retornou:

Proximo ano: java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=“America/Sao_Paulo”,offset=-10800000,dstSavings=3600000,useDaylight=true,transitions=129,lastRule=java.util.SimpleTimeZone[id=America/Sao_Paulo,offset=-10800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=9,startDay=8,startDayOfWeek=1,startTime=0,startTimeMode=0,endMode=3,endMonth=1,endDay=15,endDayOfWeek=1,endTime=0,endTimeMode=0]],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=1,YEAR=2006,MONTH=5,WEEK_OF_YEAR=25,WEEK_OF_MONTH=3,DAY_OF_MONTH=15,DAY_OF_YEAR=166,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=40,SECOND=42,MILLISECOND=150,ZONE_OFFSET=-10800000,DST_OFFSET=0]

Onde esta o erro deste codigo?
Eu queria apenas que ele me desse a hora e a data daqui a um ano.[/quote]

Irmão,

“c” é um objeto do tipo Calendar, não uma String. O que você pode fazer é: c.getTime().toString(), mas aí vem tudo em inglês.

Paz!

Psssoal, não sei porque, mas toda vez que tento compilar o codigo, o compilador me retorna este erro:

Codigo

public static void main(String[] argsv){
SimpleDateFormat dateFormat = new SimpleDateFormat();
Calendar data = Calendar.getInstance();
data.add(Calendar.YEAR, 1);
String dataStr = DateFormat.format(data.getTime());

System.out.println(“Proximo ano:\t” + dataStr);
}

Erro:

00012 cannot resolve symbol
String dataStr = DateFormat.format(data.getTime());
symbol: methodDateFormat(jav.uitl.Calendar)
location class SimpleDateformat

Ese codigo está me dando dores de cabeça, mas eu não desisto.
:oops:

Só por curiosidade, vc fez os imports de Calendar e de SimpleDateFormat? :roll:

Eu testei aqui e rodou de boa…
Dá uma olhada se seu código ta +/- assim

package teste;

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

public class DaquiAUmAno {
	
public static void main(String []args){
	Calendar c = Calendar.getInstance();
	c.add(Calendar.YEAR, 1);
	SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
	String dataStr = dateFormat.format(c.getTime());
	System.out.println("Daqui a um ano será dia:" + dataStr);
}
}

Ao invés de:

String dataStr = DateFormat.format(data.getTime()); 

Coloque

String dataStr = dateFormat.format(data.getTime()); 

vc errou o nome da variavel, esqueceu que começava com letra minuscula.

[]`s

Valeu pessoal!! Com o meu codigo não funcionou, mas com o que o Diego me mandou funcionou perfeitamente. Talvez seja porque eu estava usando a classe “SimpleDateFormat”. Mudei o nome da classe para “DaquiAUmAno”. foi a unica coisa que fiz. fiquei sem entender. Mas tudo bem funcionou e é isto que importa. :lol: :lol: :lol: