1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Programa ContaBanco

Boa noite, estou tentando implementar um metodo de pagar mensalidade todo mês, ou seja, um metodo que debite todo mes um valor de cesta de serviços (por exemplo: debitar todo dia 15 do mes) conforme o tipo de conta do cliente (R$ 12 pra correte e R$ 20 para poupança). Como poderia fazer para o programa "saber" a data correta de debita sem ter que usar banco de dados ?

Coloquei o metodo pra rodar mas ele debita o valor toda vez que o codigo é executado, mas na verdade quero que apenas debite se a data do mes corresponder com a data contida na condição.

public class Conta {

public int numConta;
protected String tipo;
private String dono;
private float saldo;
private boolean status;


    public Conta () {
        this.saldo = 0;
        this.status = false;


    }


public void abrirConta(String x){
    this.setTipo(x);
    this.setStatus(true);

    if(this.tipo == "cc"){

     this.setSaldo(50f);

    }else{
        if(this.tipo == "cp"){

        this.setSaldo(150f);        
        }  
    }


}
public void fecharConta(){
 if(this.status == true && this.saldo == 0){
     this.status = false;
 }else{
     System.out.println("Não é possivel fechar a conta.Entre em contato com o seu gerente.");
 }   
}

public float depositar(float x){
    if(this.getStatus() == true){
    this.setSaldo(this.getSaldo() + x);   
    }else{
        System.out.println("Não é possivel depositar. Conta inexistente");
    }


   return this.saldo;
}

public float sacar(float x){
    if(this.getStatus() == true && this.getSaldo() >= x){
        this.setSaldo(this.getSaldo() - x); 

    }else{
        System.out.println("Não é possivel sacar.Saldo insuficiente ou conta inexistente.");    
    }
    return this.saldo;
}

public float pagarMensal(){
    if(this.getTipo() == "cc" && this.getStatus() == true){
        if(this.getSaldo() >= 12f){
        this.setSaldo(this.getSaldo() - 12f);

        } else{
            System.out.println("Saldo insuficiente");
        } 
    }else{
       if(this.getTipo() == "cp" && this.getStatus() == true){
           if(this.getSaldo() >= 20f){
           this.setSaldo(this.getSaldo() - 20f);     
           }else{
               System.out.println("Saldo insuficiente");
           }

       } 
    }

    return this.saldo;
}

    public int getNumConta() {
        return numConta;
    }

    public void setNumConta(int numConta) {
        this.numConta = numConta;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public String getDono() {
        return dono;
    }

    public void setDono(String dono) {
        this.dono = dono;
    }

    public float getSaldo() {
        return saldo;
    }

    public void setSaldo(float saldo) {
        this.saldo = saldo;
    }

    public boolean getStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }



}

----------------------------------------

import java.util.Scanner;


public class CursoDePOOAula5ExemploPraticoConta2 {


    public static void main(String[] args) {
        Scanner tc = new Scanner(System.in);   
        Conta c1 = new Conta();
        int c = 0;
        System.out.println("Seja bem-vindo ao Banco Careiro!Qual serviço deseja? ");

        while(c == 0){

        System.out.print("\n 1 - Abrir Conta \n 2 - Saldo \n 3 - Saque \n 4 - Deposito \n 5 - Encerrar conta \n 6 - Encerrar interação  :");
        int r = tc.nextInt();
        if(r == 1){
            System.out.print(" 1 - Conta Corrente  2 - Conta Poupança :");
            int r1 = tc.nextInt();
            if(r1 == 1){
            c1.abrirConta("cc");


            }else{
            c1.abrirConta("cp");
            }

        }else{
            if(r == 2){

                if(c1.getStatus()== true){
                System.out.print(c1.getDono()+" seu saldo atual é de: R$ " +c1.getSaldo());    
                }else{
                    if(c1.getStatus() == false){
                    System.out.println("Não é possivel consultar saldo, conta inexistente");     
                    }     
                }

            }else{
                if(r == 3){
                    if(c1.getStatus() == true){
                    System.out.print(c1.getDono() + " quanto deseja sacar? : R$ ");
                    float v1 = tc.nextFloat();

                    c1.sacar(v1);    
                    }else{
                        System.out.println("Não é possivel sacar, conta inexistente");
                    }

                }else{
                    if(r == 4){
                        if(c1.getStatus() == true){
                        System.out.print(c1.getDono()+" quanto deseja depositar? : R$ ");
                        float v2 = tc.nextFloat();

                        c1.depositar(v2);    
                        }else{
                            System.out.println("Não é possivel depositar, conta inexistente.");
                        }

                    }else{
                        if(r == 5){
                         c1.fecharConta();
                            System.out.print(c1.getDono()+" sua conta foi encerrada com sucesso.");
                        }else{
                            if(r == 6 ){
                                System.out.print("Encerrando...");
                            }
                        }
                    }
                }
            }

        }
        if(c1.getStatus()== true){
            c1.pagarMensal();
        }

            System.out.print("\n" +c1.getDono()+ " Deseja outro serviço?: 0 - Sim  1 - Nao :" );
             c = tc.nextInt();
    }

    }

}
  • O metodo pagarMensal() debita toda vez que o codigo é executado, queria de outra forma. Agradeço desde já

    Igor dos Santos Pereira   1 semana atrás
  • Está debitando o valor mesmo sem chamar o método "pagarMensal()"?

    José Junio   1 semana atrás
  • Você gostaria que fosse debitada em uma determinada data de cada mês ? Ou ainda não definiu como será a forma de debito?

    José Junio   1 semana atrás
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.