Ajuda com datas

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 =) :smiley:

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