A minha dúvida é fazer um contador automático para data onde tenho a data do sistema incremento 5 dias para o meu aniversário.
EX.: hoje é 26/04/2010 o meu niver é 01/05
fiz o seguinte código
// minha data (no caso o dia de hoje)
Date minhaData = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(minhaData);
// incrementa minha data mais cinco dias
calendar.add(Calendar.DAY_OF_MONTH, 5); //aqui precisa ser automático
// formato minha data para aparecer apenas dia, mes e ano
SimpleDateFormat dataFormatada = new SimpleDateFormat("dd/MM/yyyy");
// imprime data formatada
System.out.println(dataFormatada.format(calendar.getTime()));
Exemplificando:
hoje é 26/04/2010
27/04/2010
28/04/2010
29/04/2010
meu niver 30/04/2010
Quero que fique aparecendo todos os dias apartir de hoje até o dia do aniver.
desde já agradeço pela colaboração!
Pesquise por Gregorian Calendar, aqui no fórum mesmo.
Vê se te ajuda!
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class Test {
public static void main(String[] args) {
Calendar myBirthday = new GregorianCalendar(2010, 5, 1);
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("d");
long countdow = Long.parseLong(sdf.format(new Date(myBirthday
.getTimeInMillis()
- today.getTimeInMillis())));
sdf.applyPattern("dd/MM/yyyy");
for (long i = 0; i < countdow; i++) {
today.add(Calendar.DAY_OF_MONTH, 1);
System.out.println(sdf.format(today.getTime()));
}
}
}
thiago.correa
obrigado pela dica. vou modificá-lo para se encaixar no meu programa.
um grande abraço.
Wlademir
Thiago!
A tua lógia está correta, eu tentei fazer umas modificações mas me confundi um pouco.
Vou explicar eu tenho jTable onde faço uma pesquisa nome e data nascimento que é comparada com a data(sistema) mais 5 dias (exemplo acima) só que ele aparece a data nasc hoje e amanhã não aparece.
eu quero que apareça assim: hoje ele apace o niver, amanha ele também tem que aparecer o niver e assim pordiante
27/04/2010 aniver 02/05/2010
28/04/2010 aniver 02/05/2010
29/04/2010 aniver 02/05/2010
30/04/2010 aniver 02/05/2010
01/05/2010 aniver 02/05/2010
meu código:
GregorianCalendar gc = new GregorianCalendar();
gc.set(Calendar.DATE, gc.get(Calendar.DATE)+5);
StringTokenizer st1 = new StringTokenizer(dts.format(gc.getTime()), "/");
StringTokenizer st2 = new StringTokenizer(nas, "/"); // nas data de nascimento por meio de parâmetro
String[] elem1 = new String[st1.countTokens()];
String[] elem2 = new String[st2.countTokens()];
for (int i = 0; st1.hasMoreTokens(); i++) {
elem1[i] = st1.nextToken();
}
for (int y = 0; st2.hasMoreTokens(); y++) {
elem2[y] = st2.nextToken();
}
//compara data +5 com data nasc BD
if (elem2[0].equals(elem1[0])) {
String ano1 = nas.substring(6,10);
String dia1 = nas.substring(0,2);
String mes1 = nas.substring(3,5);
dtnasc = (ano1+"-"+mes1+"-"+dia1);
}
Cara, é só você armazenar a data do aniversário em uma variável separada!