Bom sou novo por aqui e nao tenho muita experiencia em java.estou com um problema para resolver,mais não consigo achar a solução .O problema é o seguinte .Eu tenho que pegar uma data inicial uma final e parcelamento e mostrar qual as datas das parcelas ,até agora tenho o seguinte Método public static Date[] calcularDatasParcelas(int parcelas, Date dataInicial, Date dataFinal) { Date[] datasParcelas = new Date[parcelas]; for (int p=0; p < datasParcelas.length; p++) { datasParcelas[p]= new Date() ; } return datasParcelas; } o outro código public static void main(String[] args) { GregorianCalendar gc1 = new GregorianCalendar(2008, 2, 12); GregorianCalendar gc2 = new GregorianCalendar(2008, 5, 15); CalendarUtils.calcularDatasParcelas(4, gc1.getTime(), gc2.getTime()); dataArray = CalendarUtils.calcularDatasParcelas(4, gc1.getTime(), gc2.getTime()); for (Date d: dataArray) { System.out.println(d); } Se alguem puder postar a solução ficaria grato.
TITULO EDITADO PELA MODERAÇÃO
[code] public static Date[] calcularDatasParcelas(int parcelas, Date dataInicial, Date dataFinal) {
Date[] datasParcelas = new Date[parcelas];
for (int p=0; p < datasParcelas.length; p++)
{ datasParcelas[p]= new Date() ; }
return datasParcelas; }
[/code] o outro código
[code] public static void main(String[] args)
{ GregorianCalendar gc1 = new GregorianCalendar(2008, 2, 12);
GregorianCalendar gc2 = new GregorianCalendar(2008, 5, 15);
CalendarUtils.calcularDatasParcelas(4, gc1.getTime(), gc2.getTime());
dataArray = CalendarUtils.calcularDatasParcelas(4, gc1.getTime(), gc2.getTime()); for (Date d: dataArray) {
System.out.println(d); }
[/code] Desculpem o erro de formatação do código agora sim fico melhorzinho =) 
Não entendi EXATAMENTE sua dúvida. Mas olhe a documentação do GregorianCalendar que tem métodos para subtrair e acrescentar dias às datas.
Minha duvida é como eu implemento o código no meu método para me mostrar as datas ,já tentei muitas coisas mais o resultado nao sai .Vlw pela atenção
Você quer uma lógica para gerar n parcelas com intervalos iguais de tempos? Pode ser por exemplo
var dias = quantidade de dias do intervalo
var div = dias / (quantidade de parcelas + 1) /*para não ter entrada*/
var dataAtual = dataInicial
para cada uma das parcelas
dataAtual = dataAtual + div;
coloca dataAtual no array
Ou vc contar de 30 em 30 dias, ou sei lá…
É quase isso a unica diferença que a data inicial e final é o usuário que determina vlw pel ajuda =)
Então é só implementar esse código em java, né…
Use alguma classe tipo Calendar ou GregorianCalendar e poste o código se você tiver alguma dúvida.
Não sei se compreendi o que vc esta querendo …
vc quer saber as datas das parcelas no intervalo de duas datas … e ja sabe quantas parcelas deve ter neste intervalo …
caso seja isto segue o codigo que talvez lhe ajude …
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class AjudaGuj {
public static void main(String[] args) {
Date dataInicial = AjudaGuj.getDate(01, 02, 2008);
Date dataFinal = AjudaGuj.getDate(21, 02, 2008);
int qtdeParcelas = 3;
Date[] datas = calcularDatasParcelas(qtdeParcelas , dataInicial , dataFinal);
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
for (Date date : datas) {
System.out.println("Data: " + df.format(date));
}
}
public static Date[] calcularDatasParcelas(int qtdeParcelas, Date dataInicial, Date dataFinal) {
Date[] datasParcelas = new Date[qtdeParcelas];
int dias = diferencaEntreDatas(dataInicial, dataFinal);
int intervalo = dias/qtdeParcelas;
Calendar parcela = Calendar.getInstance();
parcela.setTime(dataInicial);
for(int i = 0; i< qtdeParcelas; i++){
datasParcelas[i] = parcela.getTime();
parcela.setTime(adicionaDias(parcela.getTime(), intervalo));
}
return datasParcelas;
}
public static int diferencaEntreDatas(java.util.Date dataLow, java.util.Date dataHigh){
GregorianCalendar startTime = new GregorianCalendar();
GregorianCalendar endTime = new GregorianCalendar();
GregorianCalendar curTime = new GregorianCalendar();
GregorianCalendar baseTime = new GregorianCalendar();
startTime.setTime(dataLow);
endTime.setTime(dataHigh);
int dif_multiplier = 1;
// Verifica a ordem de inicio das datas
if( dataLow.compareTo( dataHigh ) < 0 ){
baseTime.setTime(dataHigh);
curTime.setTime(dataLow);
dif_multiplier = 1;
}else{
baseTime.setTime(dataLow);
curTime.setTime(dataHigh);
dif_multiplier = -1;
}
int result_years = 0;
int result_months = 0;
int result_days = 0;
// Para cada mes e ano, vai de mes em mes pegar o ultimo dia para import acumulando
// no total de dias. Ja leva em consideracao ano bissesto
while( curTime.get(GregorianCalendar.YEAR) < baseTime.get(GregorianCalendar.YEAR) ||
curTime.get(GregorianCalendar.MONTH) < baseTime.get(GregorianCalendar.MONTH) )
{
int max_day = curTime.getActualMaximum( GregorianCalendar.DAY_OF_MONTH );
result_months += max_day;
curTime.add(GregorianCalendar.MONTH, 1);
}
// Marca que é um saldo negativo ou positivo
result_months = result_months*dif_multiplier;
// Retirna a diferenca de dias do total dos meses
result_days += (endTime.get(GregorianCalendar.DAY_OF_MONTH) - startTime.get(GregorianCalendar.DAY_OF_MONTH));
return result_years+result_months+result_days;
}
public static Date adicionaDias(Date data , int qtdeDias) {
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(data);
cal.add(Calendar.DAY_OF_MONTH , qtdeDias);
return cal.getTime();
}
public static Date getDate(int dia, int mes, int ano){
mes++;
Calendar calendar = Calendar.getInstance();
calendar.set(ano, mes, dia);
Date date = calendar.getTime();
return date;
}
}
Pode me chamar de doida ou qualquer coisa, mas eu não dou código pronto pra quem não tem o problema pronto…
Acho que as pessoas aprendem mais indo um passo de cada vez. Assim também não tem o risco de ajudarmos quem não precisava ser ajudado, ou quem quer trabalhinho da faculdade feito pelos outros.
Vlw ,Michel acho que a maior duvida que eu tinha voce respondeu nesse código vou testar para ver, Cintia ,não é trabalho de faculdade não,é que é assim ,eu estou fazendo estágio ,e meu patrão apresenta datas por exemplo.Ai ele me da um algortimo foda e quer que eu resolva usando conceitos que nem sei ainda por isso estou recorrendo a um forum…Vlw pela atenção de voces .
Bem vindo ao GUJ, antes de mais nada use a busca do forum e o google tbm, e leia as regras de postagem, obrigado!
Já procurei no google ,e sempre cai neste forum =),mais as soluções propostas aqui não se encaixava com a busca da minha solução , grato a todos que me deram atenção