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.
É quase isso a unica diferença que a data inicial e final é o usuário que determina vlw pel ajuda =)
CintiaDR
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.
MichelSante
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 …
importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjava.util.GregorianCalendar;publicclassAjudaGuj{publicstaticvoidmain(String[]args){DatedataInicial=AjudaGuj.getDate(01,02,2008);DatedataFinal=AjudaGuj.getDate(21,02,2008);intqtdeParcelas=3;Date[]datas=calcularDatasParcelas(qtdeParcelas,dataInicial,dataFinal);SimpleDateFormatdf=newSimpleDateFormat("dd/MM/yyyy");for(Datedate:datas){System.out.println("Data: "+df.format(date));}}publicstaticDate[]calcularDatasParcelas(intqtdeParcelas,DatedataInicial,DatedataFinal){Date[]datasParcelas=newDate[qtdeParcelas];intdias=diferencaEntreDatas(dataInicial,dataFinal);intintervalo=dias/qtdeParcelas;Calendarparcela=Calendar.getInstance();parcela.setTime(dataInicial);for(inti=0;i<qtdeParcelas;i++){datasParcelas[i]=parcela.getTime();parcela.setTime(adicionaDias(parcela.getTime(),intervalo));}returndatasParcelas;}publicstaticintdiferencaEntreDatas(java.util.DatedataLow,java.util.DatedataHigh){GregorianCalendarstartTime=newGregorianCalendar();GregorianCalendarendTime=newGregorianCalendar();GregorianCalendarcurTime=newGregorianCalendar();GregorianCalendarbaseTime=newGregorianCalendar();startTime.setTime(dataLow);endTime.setTime(dataHigh);intdif_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;}intresult_years=0;intresult_months=0;intresult_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)){intmax_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));returnresult_years+result_months+result_days;}publicstaticDateadicionaDias(Datedata,intqtdeDias){GregorianCalendarcal=newGregorianCalendar();cal.setTime(data);cal.add(Calendar.DAY_OF_MONTH,qtdeDias);returncal.getTime();}publicstaticDategetDate(intdia,intmes,intano){mes++;Calendarcalendar=Calendar.getInstance();calendar.set(ano,mes,dia);Datedate=calendar.getTime();returndate;}}
CintiaDR
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.
T
thiagotanaka
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 .
Luiz_Aguiar
Bem vindo ao GUJ, antes de mais nada use a busca do forum e o google tbm, e leia as regras de postagem, obrigado!
T
thiagotanaka
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