Gerar Data de Vencimento

6 respostas
L

Galera tenho um formulário que vou usar pra gerar as mensalidades dos alunos e gostaria de umas dicas de como gerar sempre a data de vencimento do mês seguinte (todo dia 10 do mês seguinte), olhei no Joda-time mas naum encontrei nada q pudesse usar, Calendar ou Date são trabalhosos pra fazer isso…sugestões?

6 Respostas

D

Calendar e Date é trabalhoso?
Só na primeira vez.

public class Teste {
    public static void main(String[] args) {
        GregorianCalendar gc = new GregorianCalendar();
        float valor = Float.parseFloat(JOptionPane.showInputDialog("Valor total"));
        int numPar = Integer.parseInt(JOptionPane.showInputDialog("Quantidade de parcelas"));
        Date diaAtual = new Date();
        float valApx = valor / numPar;
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMaximumFractionDigits(2);
        for (int e = 0; e < numPar; e++) {
            gc.setTime(diaAtual);
            gc.roll(GregorianCalendar.MONTH, e);
            DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
            Date d = gc.getTime();
            if(d.equals(diaAtual)){
                System.out.print("Entrada: ");
            }else{
                System.out.print("Parcela " + e + ": ");
            }
            System.out.println(df.format(d) + ": " + nf.format(valApx));
        }
    }
}

Adapta aí ao que você precisa.

L

interessante…vou v…vlw!

K
public static Calendar montaDataPorDiaVencimento(int diaVencimento, int indiceParcela)

{

Calendar vencimento = Calendar.getInstance();

for(int i = 0; i < indiceParcela; i++)

{

vencimento.roll(Calendar.MONTH, true);

vencimento.set(Calendar.DAY_OF_MONTH, diaVencimento);

if(vencimento.get(Calendar.MONTH) == 0)

{

vencimento.roll(Calendar.YEAR, true);

}

}
return vencimento;
}
D
keikunchan:
public static Calendar montaDataPorDiaVencimento(int diaVencimento, int indiceParcela) { Calendar vencimento = Calendar.getInstance(); for(int i = 0; i < indiceParcela; i++) { vencimento.roll(Calendar.MONTH, true); vencimento.set(Calendar.DAY_OF_MONTH, diaVencimento); if(vencimento.get(Calendar.MONTH) == 0) { vencimento.roll(Calendar.YEAR, true); } } return vencimento; }

Seis meses depois e você ainda acha que ele precisa desta informação?
Aliás, você sequer utilizou a tag [code]...
Parabéns, champs...

K

Seis meses depois, e vc muito inteligente que é, hooo senhor da sabedoria! :slight_smile: Não lhe apresentou uma resposa conclusiva, aliás, fiz o post de maneira q outras futuras pessoas que efetuarem pesquisa sobre o assunto, possa ter mais referencias, mas isto, ñ é da sua conta, mas de qualquer forma, visto q vc não percebe a dimenssão do resultado dos conteudos que postamos no forum, ñ perderei meu tempo com discussões banais.

L
keikunchan
public static Calendar montaDataPorDiaVencimento(int diaVencimento, int indiceParcela) 
{ 
    Calendar vencimento = Calendar.getInstance(); 
      for(int i = 0; i < indiceParcela; i++) 
      {  
          vencimento.roll(Calendar.MONTH, true);  
          vencimento.set(Calendar.DAY_OF_MONTH, diaVencimento); 
          
          if(vencimento.get(Calendar.MONTH) == 0) 
          {  
            vencimento.roll(Calendar.YEAR, true); 
          } 
      } 

    return vencimento; 
}

valeu keikunchan! sua dica me ajudou muito!!

Criado 18 de julho de 2011
Ultima resposta 21 de mai. de 2013
Respostas 6
Participantes 4