Ajuda com datas e calculo de juros por atraso

1 resposta
B

Galera blz, preciso fazer esse programinha A bibliotecária precisa controlar os empréstimos e devoluções dos livros da faculdade, sendo que para as devoluções com atraso deve ser cobrada uma multa diária de R$0,50.Apresentar uma solução para o problema acima desenvolvendo sua modelagem e a implementação coerente com a mesma.

Segue o codigo e a modelagem, como não sei trabalhar com data , fiz umas gambiarra aí, como na comparação do mes se eh de 30 ou 31,

//nomecliente[3]
//telefonecliente[3]
//cpfcliente[3]
//diaemprestimo[3]
//mesemprestimo[3]
//diadevolucao[3]
//mesdevolucao[3]
//prazo
//atraso
//multa
//-------------------------
//CadastroCliente();
//EmprestimodoLivro();
//DevoluçãoLivro();
//Calculoatraso();
public class Biblioteca {

    private String[] nomecliente = new String[3];
    private int[] telefonecliente = new int[3];
    private String[] cpfcliente = new String[3];
    private String[] nomelivro = new String[3];
    private int[] diaemprestimo = new int[3];
    private int[] mesemprestimo = new int[3];
    private int[] diadevolucao = new int[3];
    private int[] mesdevolucao = new int[3];
    private int prazo;
    private int atraso;
    private double multa = 0.50;

    void CadastroCliente() {
        int indice = 0;
        Scanner ler = new Scanner(System.in);

        System.out.println("Digite o nome do Cliente");
        nomecliente[indice] = ler.nextLine();

        System.out.println("Digite o telefone do Cliente");
        telefonecliente[indice] = ler.nextInt();

        System.out.println("Digite o cpf do Cliente");
        cpfcliente[indice] = ler.next();


        System.out.println("Nome do Cliente");
        System.out.println(nomecliente[0]);

        System.out.println("Telefone o nome do Cliente");
        System.out.println(telefonecliente[0]);

        System.out.println("CPF do Cliente");
        System.out.println(cpfcliente[0]);

    }

    void EmprestimodoLivro() {

        Scanner ler = new Scanner(System.in);

        System.out.println("Digite o nome do Livro");
        nomelivro[0] = ler.nextLine();


        System.out.println("Digite o mes de empretimo do livro");
        mesemprestimo[0] = ler.nextInt();
        if (mesemprestimo[0] > 12 || mesemprestimo[0] < 1) {
            System.out.println("Mês inválido");

        }
        if (mesemprestimo[0] == 1 || mesemprestimo[0] == 3 || mesemprestimo[0] == 5 || mesemprestimo[0] == 7 || mesemprestimo[0] == 8 || mesemprestimo[0] == 10 || mesemprestimo[0] == 12) {

            System.out.println("Digite o dia da retirada do livro");
            diaemprestimo[0] = ler.nextInt();

            if (diaemprestimo[0] > 31 || diaemprestimo[0] < 1) {
                System.out.println("Dia inválido");

            }
        }

        if (mesemprestimo[0] == 4 || mesemprestimo[0] == 6 || mesemprestimo[0] == 9 || mesemprestimo[0] == 11) {
            System.out.println("Digite o dia da retirada do livro");
            diaemprestimo[0] = ler.nextInt();

            if (diaemprestimo[0] >= 31 || diaemprestimo[0] < 1) {
                System.out.println("Dia inválido");

            }
        }

        if (mesemprestimo[0] == 2) {
            System.out.println("Digite o dia da retirada do livro");
            diaemprestimo[0] = ler.nextInt();

            if (diaemprestimo[0] > 28 || diaemprestimo[0] < 1) {
                System.out.println("Dia inválido");

            }
        }
        prazo = diaemprestimo[0] + 7;
        System.out.println("Nome do Livro");
        System.out.println(nomelivro[0]);

        System.out.println("Data de Retirada");
        System.out.println(diaemprestimo[0]);

        System.out.println("A data de devolução é dia: ");
        System.out.println(prazo + "/" + mesemprestimo[0]);


        System.out.println("OBS:O Prazo de entrega do livro é de 7 dias apartir da data de retirada ");
        System.out.println("Para cada dia de atraso será cobrado R$0,50 de multa");
    }

    void Devolucao() {
        Scanner ler = new Scanner(System.in);

        System.out.println("Digite o mes de entrega");
        mesdevolucao[0] = ler.nextInt();
        if (mesdevolucao[0] > 12 || mesdevolucao[0] < 1) {
            System.out.println("Mês inválido");

        }
        if (mesdevolucao[0] == 1 || mesdevolucao[0] == 3 || mesdevolucao[0] == 5 || mesdevolucao[0] == 7 || mesdevolucao[0] == 8 || mesdevolucao[0] == 10 || mesdevolucao[0] == 12) {

            System.out.println("Digite o dia da devolução do livro");
            diadevolucao[0] = ler.nextInt();

            if (diadevolucao[0] > 31 || diadevolucao[0] < 1) {
                System.out.println("Dia inválido");

            }
        }

        if (mesdevolucao[0] == 4 || mesdevolucao[0] == 6 || mesdevolucao[0] == 9 || mesdevolucao[0] == 11) {
            System.out.println("Digite o dia da devolução do livro");
            diadevolucao[0] = ler.nextInt();

            if (diadevolucao[0] >= 31 || diadevolucao[0] < 1) {
                System.out.println("Dia inválido");

            }
        }

        if (mesdevolucao[0] == 2) {
            System.out.println("Digite o dia da retirada do livro");
            diadevolucao[0] = ler.nextInt();

            if (diadevolucao[0] > 28 || diadevolucao[0] < 1) {
                System.out.println("Dia inválido");

            }
        }

        System.out.println("Mes da devolução");
        System.out.println(mesdevolucao[0]);

        System.out.println("Dia da devolução");
        System.out.println(diadevolucao[0]);
    }

    void Calculoatraso() {




        System.out.println("Data de Retirada");
        System.out.println(diaemprestimo[0]);

        prazo = diaemprestimo[0] + 7;
        atraso = diadevolucao[0] - prazo;



        System.out.println("A data de devolução é dia " + prazo);

        if (diadevolucao[0] > prazo) {

            System.out.println("Livro entregue com " + atraso + " dias de atraso!"
                    + " Cobrar multa de $0,50 ao dia!");
            multa = (atraso * multa);
            System.out.println("Valor total da multa:");
            System.out.println(String.format("(R$) %.02f", multa));
        } else {
            System.out.println("Livro entegue no prazo");
        }


    }
}

1 Resposta

Leandro_M

Cara, aparentemente está correto.

Só verifica o void Calculoatraso() porque ele tá fazendo um cálculo incorreto quando o mês de devolução é diferente do mês de retirada.

Criado 2 de junho de 2013
Ultima resposta 2 de jun. de 2013
Respostas 1
Participantes 2