Platzi
Platzi

¡Invierte en ti y celebremos! Adquiere un plan Expert o Expert+ a precio especial.

Antes: $349
$259
Currency
Antes: $349
Ahorras: $90
COMIENZA AHORA
Termina en: 16D : 6H : 34M : 47S

Debes tener cuenta en Platzi

Para ver esta clase abierta debes iniciar sesión

Qué son tablas de verdad y compuertas lógicas36/36

En esta clase Freddy te explica cómo funcionan las tablas de verdad y las compuertas lógicas para que cimientes tus fundamentos de ingeniería de software o comiences a programar desde cero.

Una tabla de verdad muestra el valor de verdadero de una proposición compuesta, para cada combinación de verdad que se pueda asignar. Esto es la base de la programación y la electrónica.

La expresiones para los operadores de comparacion son:

	y		= and	= &&	= *
	o		= or		= ||		= +
	no		= not	= !		= ~
o exclusiva	= xor	= ^		= (+)

Logre terminar el mío, y gracias al código de Raul Gomez pude salir de una duda que tenía en mi código. Si ven que lo puedo mejorar, agradecería sus opiniones…

FLUJO:

HTML:

<<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Transferencias entre Bancos </title>
  </head>
  <body>
        <h1> Transferencia entre bancos </h1>
        <p>
          <img src="https://4.bp.blogspot.com/-gQjHN6OJTDc/V8Ks-GjcSfI/AAAAAAAAHcs/7LjVCQ9FgNw8IsmeHgePP4YbQCq90LAlQCLcB/s1600/Transferencia_bancaria.png" />
        </p>
        <p id="resultado"> </p>
      <script src="Banco.js"></script>
  </body>
</html>

JS:

var resultado = document.getElementById("resultado");

bancos = ["Bancolombia", "Davivienda", "BBVA"];
var opcionBanco = bancos.length;
seleccionBancoCliente = Math.floor(Math.random()*opcionBanco);
seleccionBancoDestino = Math.floor(Math.random()*opcionBanco);

bancoCliente = seleccionBancoCliente;
cuentaCliente = true;
saldoCliente = Math.round(Math.random()*3000000);
bancoDestino = seleccionBancoDestino;
cuentaDestino = true;
transferencia = 1000000;
costoTransferencia = 100;

hora = Math.round(Math.random()*23);
document.write("Su hora para la transferencia es las:  <strong>" + hora, " horas</strong> <hr />");
document.write("El saldo del cliente actual es:  <strong>" + saldoCliente, ".</strong> <hr />");
document.write("El banco del cliente es:  <strong>" + bancoCliente, ".</strong> <hr />");
document.write("El banco de destino es:  <strong>" + bancoDestino, ".</strong> <hr />");

if(hora >= 9 && hora <= 12 || hora >= 15 && hora <= 20)
{
    if(cuentaCliente == true && cuentaDestino == true)
    {
        console.log("Cuenta OK");
        if(saldoCliente >= (transferencia + costoTransferencia))
        {
            console.log("Cuenta OK");
            if(bancoCliente == bancoDestino)
            {
                resultado.innerHTML = ("Transferencia realizada sin costo adicional! <hr />");   
            }
            else
            {
                resultado.innerHTML = ("El costo de su tranferencia es: <strong>" + (transferencia + costoTransferencia), "</strong> <hr />");   
            }
        }
        else
        {
            resultado.innerHTML = ("Lo sentimos! <strong>Fondos insuficientes.</strong> <hr />");   
        }
    }
    else
    {
        resultado.innerHTML = ("Cliente o Destino NO verficado! <hr />");   
    }
}
else
{
    resultado.innerHTML = ("La hora no esta dentro del horario de atención! <strong>Recuerde que el horario es de 9 a 12 y de 15 a las 20 horas.</strong> <hr />");   
}

Hola aqui les dejo un proyecto que realice. CALCULADORA DIGITAL con proteus. Saludos.
calculadora.png

Hola! Aqui dejo mi codigo

var banco_cliente="Banesco";
var cuenta_cliente=true;
var saldo_cliente=2000000;
var banco_destino="Bancolombia";
var cuenta_destino=true;
var hora= 20;
var monto= 1000000;
var transaccion;

if(banco_cliente==banco_destino)
{
transaccion=0;
}
else
{
transaccion=100;
}


if( cuenta_cliente && cuenta_destino)
{

 if( (hora >= 9 && hora <=12)  || (hora >= 15 && hora <= 20) )
 {

  if(saldo_cliente > monto+transaccion)
  {
    console.log("Lo lograste! Tu transaccion te saldra en "+ transaccion);
  }
  else
  {
    console.log("eres pobre y nadie te quiere ");
  }

}
 else
 {
  console.log("No son horas para hacer transeferencias");
 }
}
else
{
console.log("La cuenta de destino o su cuenta no existe");
}```

Y el que intente hacer de la forma mas corta posible


var banco_cliente=“Banesco”;
var cuenta_cliente=true;
var saldo_cliente=2000000;
var banco_destino=“Bancolombia”;
var cuenta_destino=true;
var hora= 10;
var monto= 1000000
var transaccion;

if(banco_cliente==banco_destino)
{
transaccion=0;
}
else
{
transaccion=100;
}

if( (cuenta_cliente && cuenta_destino) && ( (hora > 9 && hora <12) || (hora > 15 && hora < 20) ) && (saldo_cliente > monto+transaccion) )
{

console.log("Transferiste "+monto+" Tu transaccion te saldra en "+ transaccion);

}
else
{
console.log(“No puedes hacerlo algo anda mal”);
}```

como puedo ganar mas puntos?

trasnfer.PNG

Yo lo hice todo en una pagina, la pueden chequear aqui:

tranferencia.JPG

Me comentan si hay algo que deba revisar 😃

HTML

<!DOCTYPE html>
<meta charset="utf-8">
<meta lang="es">
<head>
    <title>Transferencia</title>
    <style>
    *
    {
        text-align: center;
        margin: 10px auto;
    }
body{
    background-color: rgb(122, 106, 214)
}

#trans{
    font-size: 1.3em;
    background-color:rgb(66, 177, 177) ;
    width: 50%;
}

    </style>
    
</head>
<html>
    <h1>Banco DINERON</h1>
    <i>Tu banco donde hay <b>full</b> billete</i>
<div id="trans">

<h2>Tu saldo: <span id="tuSaldo"></span></h2>

<h2>Introduzca el monto a tranferir</h2>

<input id="montoTransferencia" type="number">


<h2>Introduzca el banco a destino</h2>
    <select id="bancoTransferir">
    <option id="opcion1" value="Banco A">Banco A</option>
    <option id="opcion" value="Banco B">Banco B</option>
</select>

<h2>introduzca el destinatario</h2>
    <select id="clienteTransferir">
    <option id="cuentaA" value=1>Roberto Esponja</option>
    <option id="cuentaB" value=0>Patricio Estrella</option>
</select>


<br>
<p>Las transacciones a otros bancos tienen una comision de un 10%</p>
<br>
<input id="ejecutar" type="button" value="ejecutar">
</div>
<script src="transferencia.js"></script>

</html>

JS

 class Transferencia {
    constructor(m, bc, cc, sc, bd, cd, h){
    this.monto = m,
    this.bancoCliente = bc,
    this.cuentaCliente = cc,
    this.saldoCliente = sc;
    this.bancoDestino = bd;
    this.cuentaDestino =cd;
    this.horaTrans = h;
    }
}


var hora = 15;
/*Cambiar el valor de hora por lo siguiente y 
descomentar la linea de codigo que le sigue para que tome evalue la hora real*/

/*new Date();
hora = hora.getHours();
*/


var  cliente = {
    clienteBanco: "Banco A",
    clienteCuenta: true,
    clienteSaldo: 150,
}


document.getElementById("ejecutar").addEventListener("click", tranferir);
var tuSaldo = document.getElementById("tuSaldo");
var showSaldo = ()=>{tuSaldo.innerHTML = cliente.clienteSaldo};
showSaldo();

var montoTranferencia = parseInt(document.getElementById("montoTransferencia").value);

function tranferir(){

var target1 = document.getElementById("bancoTransferir").value;
var target2 = document.getElementById("clienteTransferir").value;
var montoTranferencia = parseInt(document.getElementById("montoTransferencia").value); var destinoCheck = 0;
var saldosCheck = false;
var aprobado = false;
var horaCheck = false;

//Evalua bancos 

if(target1 != "Banco A")
    {
    montoTranferencia+= (montoTranferencia * 10 /100);
    console.log("Monto Tranferencia", montoTranferencia);} 

//Evalua client
 if(target2 ==1 ){
   destinoCheck++;
}     

else{
 return  alert("Destinatario no aprobado");
}

//Evalua saldos 
if (cliente.clienteSaldo>= montoTranferencia)
        {
            saldosCheck = true;
            console.log("saldos", saldosCheck);
        }
else{
    return alert("Su saldo no es suficiente para completar la tranferencia");
}

//Hora check
if(hora >= 9 && hora <=12 || hora >=15 && hora <=20 ){
    horaCheck = true;
    console.log("hora:", horaCheck);
}

else{
    return alert("En este momento no es posible realizar la tranferencia \nNuestro horario de tranferencia es de 9 am - 12 pm y de 15 pm a 20 pm");
}

 //Evalua todo       
 if(destinoCheck > 0 && saldosCheck == true && horaCheck == true){
     cliente.clienteSaldo -= montoTranferencia;
     aprobado = true;
     showSaldo();
     console.log(`Transferencia por ${montoTranferencia} aprobada. Su saldo es de: ${cliente.clienteSaldo} `);
    return alert(`Transferencia por ${montoTranferencia} aprobada. Su saldo es de: ${cliente.clienteSaldo} `);
    }

    }

 

Intenté hacerlo de la manera más clara posible en un solo if:

  1. En la primera línea comprobamos que sean usuarios verificados y el dinero disponible
  2. En la segunda validamos la transacción, teniendo en cuenta si la misma tiene costo o no
  3. Por último verificamos que el horario sea adecuado y damos paso a la instrucción
if(
  client_ver && destiny_ver && client_money >= (  
  (client_bank === destiny_bank) ? 0 : 100 ) + transaction 
  && (  (time >=9 && time <= 12) || (time >=15 && time <= 20) )
  ){
    console.log("Your transaction was successful, thanks.")
   }
else console.log("We can't handle your transaction, please try later.")
}

Lo probé en el navegador y funcionó, lo único que hay que hacer es englobar todo este código dentro de una función y ejecutarla luego de definir las variables y sus respectivos valores.

*PD: el “?” en la segunda línea es un operador ternario que devuelve el valor que escribimos luego del mismo si la condición que escribimos previamente es verdad; de lo contrario, devuelve un valor en base a lo que escribamos luego del primer valor seguido de los dos puntos.

if (te_gusto_el_codigo) { daleLike() }
else if (tienes_un_codigo_mas_claro) { dejaloEnLosComentarios() }

Veo que muchos ponen códigos bien completos con funciones y todo, pero pues yo solo me apegue al reto que era hacer los filtros o validaciones anidados y luego en uno solo, los códigos que tengo son los siguientes y funcionan

Validaciones anidadas:

var bancoCliente = "Bancomer";
var cuentaCliente=12345;
var saldocliente = 1500000;
var bancoDestino = "Bancomer";
var cuentaDestino = 67890;
var horaTransferencia = 17;

if (bancoCliente == "Bancomer" && cuentaCliente == 12345)
{ console.log("Cuenta verificada");
  if(saldocliente>1000000)
  {
    console.log("Si te alcanza");
    if(bancoDestino == "Bancomer" && cuentaDestino == 67890)
    {
      console.log("La cuenta destino es correcta");
      if(horaTransferencia>9&&horaTransferencia<12 || horaTransferencia>15&&horaTransferencia<20)
      {
        console.log("La Transferencia fue realizada");
      }
      else {
        console.log("El horario no es permitido");
      }
    }
    else {
      console.log("La cuenta de destino no existe");
    }

  }
  else {
    console.log("No tienes el suficiente dinero");
  }
}
else {
  console.log("No eres de este banco");
}

Una sola validación:

var bancoCliente = "Bancomer";
var cuentaCliente=12345;
var saldocliente = 1500000;
var bancoDestino = "Bancomer";
var cuentaDestino = 67890;
var horaTransferencia = 17;

if (bancoCliente == "Bancomer" && cuentaCliente == 12345 && saldocliente>1000000 && bancoDestino == "Bancomer" && cuentaDestino == 67890 && (horaTransferencia>9&&horaTransferencia<12 || horaTransferencia>15&&horaTransferencia<20))
{
 console.log("Transferencia realizada");
}
else {
  console.log("No se puede realizar la transferencia");
}```

Hola aqui les comparto un proyecto que hice. RELOJ DIGITAL con proteus. Saludos.

relojDigital.png

tu explicación fue muy buena gracias, logre entender bien las tablas de verdad y como funcionan cuando se combinan.

Tarea:

transaccion.html

<!DOCTYPE html>
<html>
<head>
	<title>Condicionales de Transferencia</title>
</head>
<body>
	<h2>Ver Operación por  consola: (F12)</h2>
	<script src="persona.js"></script>
	<script src="motor_desicion.js"></script>
</body>
</html>

persona.js

class persona{
	constructor(n, b, s, v)
	{
		this.nombre = n;
		this.banco = b;
		this.saldo = s;
		this.verificada = v;
	}

	mostrar()
	{
		console.log("Nombre:" + this.nombre);
		console.log("Banco:" + this.banco);
		console.log("Saldo:" + this.saldo);
		console.log("Verificada:" + this.verificada + "\n\n");
	}
}

motor_decision.js

var cliente = new persona("cliente", "Venezuela", 2000000, true);
var destino = new persona("destino", "Mercantil", 500, true);
var monto_transferir = 1000000;
var hora = 15;
var costo;

console.log("Hora:" + hora);
console.log("Monto a transferir:" + monto_transferir + "\n\n");

cliente.mostrar();
destino.mostrar();

// horario disponible
if (hora >= 9 && hora <= 12 || hora >=15 && hora <=20)
{	
	// Cliente y Destinatario Verificados
	if (cliente.verificada && destino.verificada)
	{
		// Costo de transaccion
		if (cliente.banco == destino.banco) costo = 0;
		else costo = 100;
		
		// Saldo mayor al monto a transferir mas costo de operacion
		if (cliente.saldo > monto_transferir + costo)
		{
			cliente.saldo = cliente.saldo - (monto_transferir + costo);
			destino.saldo = destino.saldo + monto_transferir;
			console.log("-- Saldo Transferido --\n\n");
		}
		else console.log("-- Saldo insuficiente --\n\n");
	}
	else console.log("-- Ambas cuentas deben de estar verificadas --\n\n");
}
else console.log("-- Horario fuera de servicio --\n\n")

cliente.mostrar();
destino.mostrar();

condicional en una linea:

// Costo de transaccion
if (cliente.banco == destino.banco) costo = 0;
else costo = 100;

if ((hora >= 9 && hora <= 12 || hora >=15 && hora <=20) && (cliente.verificada && destino.verificada) && (cliente.saldo > monto_transferir + costo)) console.log("-- Saldo Transferido --\n\n");
else console.log("-- Algo salio mal --\n\n");
var bancoCliente = 1, 
    cuentaCliente = 1,
    saldoCliente = 10000101,
    bancoDestino = 0,
    cuentaDestino = 'nacion123',
    horaTransferencia = 16,
    monto = 1000000,
    costo = 100

if(bancoCliente && cuentaCliente && !bancoDestino && saldoCliente && saldoCliente > monto + costo && ((horaTransferencia > 9 && horaTransferencia < 12) || (horaTransferencia > 15 && horaTransferencia < 20))){
    console.log('funciona y realiza transferencia')
} else if(bancoCliente && cuentaCliente && bancoDestino && saldoCliente && saldoCliente > monto && ((horaTransferencia > 9 && horaTransferencia < 12) || (horaTransferencia > 15 && horaTransferencia < 20))) {
    console.log('funciona y realiza transferencia')
} else {
    console.log('no se puede realizar la operación')
}```

Quiero agradecer y reconocer la alta calidad de este curso y en especial la vocación en la enseñanza de Freddy Vega !!! muchas gracias por su simpatía y humildad que motiva en el logro de nuevos retos.
Ya he comenzado a tomar otros cursos de Platzi y me siento muy satisfecha por la metodología de sus docentes (todos buscan el aprendizaje y a la vez el mantener motivados a sus estudiantes.
Espero aprovechar al máximo este valiosísimo recurso y de seguro que desde ya, lo estoy recomendando entre mis allegados… Dios les bendiga por este excelente trabajo!!

HTML (Primera parte del reto)
html3.png

JAVASCRIPT (primera parte del reto)
1.png
2.png
JAVASCRIPT (Segunda parte del reto)
1.png
NOTA: revise algunos codigos de mis compañeros para entender del todo este tema y tome algunas partes para mejorar el mio, en esta clase aprendi mucho estuve todo el dia haciendo los retos 😃

Hola, Este es mi aporte.
CompuertasLogicas_Result_1.png
Colocamos la hora.
CompuertasLogicas_Result_2.png
Seleccionamos los bancos y colocamos la cantidad.
Adicional a eso agregue un contador de tu saldo que automáticamente resta cada transferencia.
CompuertasLogicas_Result_3.png
En caso de cambiar de banco(s) y/o monto
CompuertasLogicas_Result_4.png
Y cuando se acabe el saldo, ya no se podra realizar transferencias.
CompuertasLogicas_Result_5.png

  • HTML
    CompuertasLogicas_HTML.png

  • JS
    CompuertasLogicas_JS_1.png
    CompuertasLogicas_JS_2.png
    CompuertasLogicas_JS_3.png
    CompuertasLogicas_JS_4.png

Ordenado y legible

//VARIABLES

var banco_cliente = "mibanco";
var cuenta_cliente = true;
var saldo_cliente = 1000;

var monto = 1000;
var costo_transaccion = 100;
var hora_transferencia = 10;

var banco_destino = "mibanco";
var cuenta_destino = true;

var transferencia = false;
//

if(cuenta_cliente){
    if(cuenta_destino){

        if(banco_cliente == banco_destino){
            costo_transaccion = 0;
        }else{
            costo_transaccion = 100;
        }

        if(saldo_cliente >= (monto + costo_transaccion)){
            if((hora_transferencia >= 9 && hora_transferencia <= 12) || (hora_transferencia >= 15 && hora_transferencia <= 20)){
                transferencia = true;
            }
        }
    }
}

console.log(transferencia);

Maxima reduccion que pude lograr

if(banco_cliente == banco_destino){
    costo_transaccion = 0;
}
if(cuenta_cliente && cuenta_destino && saldo_cliente >= (monto + costo_transaccion) && (hora_transferencia >= 9 && hora_transferencia <= 12) || (hora_transferencia >= 15 && hora_transferencia <= 20)){

    transferencia = true;
}

Por acá dejo mi versión del código, lo estructuré en 2 archivos:
index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Transferencia Bancaria BanQ</title>
    <style>
        body {
            background-color: #000000dc;
            color: lightblue;
            font-size: 20px;
        }
        h1 {
            text-align: center;
            font-size: 38px;
        }
        fieldset {
            margin: 0px 100px;
            padding: 0px 50px;
        }
        div {
            display: inline-block;
        }
        #datos-cliente {
            display: none;
        }
        #error {
            text-align: justify;
            color: lightcoral;
        }
        #exito {
            text-align: center;
            color: lightgreen;
        }
    </style>
</head>
<body>
    <h1>Banco BanQ</h1>
    <fieldset>
        <legend>Transferencia Bancaria</legend><br>
        Nro. cuenta del cliente: <input type="text" id="cuenta-cliente" title="1234567890" value="1234567890">
        <button onclick="consultar()">Consultar</button><br><br>
        <div id="datos-cliente">
            Saldo cuenta del cliente: <div id="saldo-cliente"></div><br><br>
            Banco destino de la transferencia: <input list="bancos" id="banco-destino" value="Banco BanQ">
            <button onclick="limpiarBancoDestino()">Limpiar</button><br>
            <datalist id="bancos"></datalist><br>
            Cuenta destino de la transferencia: <input type="text" id="cuenta-destino" title="9876543210" value="9876543210"><br><br>
            Valor de la transferencia: $ <input type="text" id="valor-transferencia" value="10000">
            <button onclick="costo()">Costo Transferencia</button><br><br>
            <div id="bloque-costo-transferencia">
                Costo de la transferencia: <div id="costo-transferencia"></div>
                <button onclick="transferir()">Transferir</button>
            </div>
        </div>
        <h3 id="error"></h3>
        <h3 id="exito"></h3>
    </fieldset>
    <script src="script.js"></script>
</body>
</html>

script.js


var clienteVerificado = false
var bancoVerificado = false
var bancosArray = ["Banco BanQ","Banco Super","Banco BanaMama","Banco Competencia"]
var saldoDisponible = 100000
var valorCosto = 0
var error = document.getElementById("error")
var exito = document.getElementById("exito")
var saldo = document.getElementById("saldo-cliente")
var costoTransferencia = document.getElementById("costo-transferencia")
var bancos = document.getElementById("bancos")
var bloqueCostoTransferencia = document.getElementById("bloque-costo-transferencia").style
bloqueCostoTransferencia.display = "none"

function consultar() {
    let cuenta = document.getElementById("cuenta-cliente").value
    let datos = document.getElementById("datos-cliente").style
    if (cuenta == 1234567890) {
        datos.display = "block"
        saldo.innerHTML = currencyFormat(saldoDisponible)
        error.innerHTML = ""
        clienteVerificado = true
        for (const banco of bancosArray) {
            let option = document.createElement("option")
            option.value = banco
            bancos.appendChild(option)
        }
    } else {
        datos.display = "none"
        error.innerHTML = "Numero de cuenta no existe!!! Mira la sugerencia del campo Nro. cuenta del cliente ;)"
        clienteVerificado = false
    }
}

function currencyFormat(num) {
    return 'USD $ ' + num.toFixed(0).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
}

function limpiarBancoDestino() {
    document.getElementById("banco-destino").value = ""
    bloqueCostoTransferencia.display = "none"
}

function costo() {
    let bancoDestino = document.getElementById("banco-destino").value
    if (bancoDestino == bancosArray[0]) {
        valorCosto = 0
    } else {
        valorCosto = 100
    }
    costoTransferencia.innerHTML = valorCosto
    bloqueCostoTransferencia.display = "block"
}

function transferir() {
    let date = new Date()
    let hour = parseInt(date.getHours())
    let minutes = parseInt(date.getMinutes())
    let cuenta = document.getElementById("cuenta-destino").value
    let valor = document.getElementById("valor-transferencia").value
    let bancoDestino = document.getElementById("banco-destino").value
    for (const banc of bancosArray) {
        if (banc == bancoDestino && cuenta == 9876543210) {
            valor = parseInt(valor) + valorCosto
            bancoVerificado = true
            break
        } else {
            bancoVerificado = false
        }
    }
    error.innerHTML = ""
    exito.innerHTML = ""
    if (20 <= hour || hour < 9 || 12 <= hour && hour < 15) {
        error.innerHTML = "Importante!!! Recuerde que solo se pueden hacer transferencias en horario de 9 a 12 y de 15 a 20. Hora Actual: " + hour + ":" + minutes
    } else if (clienteVerificado && bancoVerificado && valor <= saldoDisponible) {
        exito.innerHTML = "Transferencia realizada exitosamente!!!"
        saldoDisponible -= valor
        saldo.innerHTML = currencyFormat(saldoDisponible)
    } else {
        error.innerHTML = "Los datos son invalidos!!! <ul><li> Revisa el banco y cuenta destino de la transferencia </li><li> Selecciona uno de los bancos que te sugiere el sistema </li><li> Mira la sugerencia del campo Cuenta destino de la transferencia ;) </li><li> Verifica que el saldo de tu cuenta es suficiente para hacer la transferencia </li></ul>"
    }
}

Y esta es la salida:
Selection_026.png
Dejo también el link del proyecto en GitHub para el que lo quiera consultar: https://github.com/shiroukamui/ProgramacionBasicaPlatzi/tree/master/transferencia

Mi ejemplo en js:

banco_cliente = "Bancomer";
cuenta_cliente = true;
saldo_cliente = 1200000;
banco_destino = "Banamex";
cuenta_destino = true;
hora = 11;
transferir = 1000000;
costo_transaccion = 100;

if((hora >=9 && hora <= 12) || (hora >= 15 && hora <= 20)){
  if(cuenta_cliente && cuenta_destino){
    if( saldo_cliente >= (transferir + costo_transaccion) ){
      if(banco_cliente == banco_destino){
          document.write("Transferencia sin costo de transacción");
      }
      else{
        document.write("Cantidad a transferir + costo de transferencia: $" + (transferir + costo_transaccion));
      }
    }
    else {
      document.write("Fondos insuficientes");
    }
  }
  else{
    document.write("Cliente o destino falso");
  }
}
else{
  document.write("Error: fuera de horario");
}

var cliente, destino;
var hora;
var banco_cliente, banco_destino;
var saldo;
var transferencia;

if(cliente && destino && 9<hora<12 || 15<hora<20 && saldo > 1M + 100*(banco_cliente !^ banco_destino))
{
transferencia =1;
}
else{transferencia = 0}

Gracias a las compuertas lógicas y tablas de verdad es posible crear circuitos integrados, hasta poder simplificar la cantidad de compuertas y poder diseñar un circuito mas pequeños que cumpla la misma función que el original todo gracias al álgebra de Boole.

Hola comunidad, no tiene nada que ver con la clase pero se me vino una duda a la mente, y tal vez alguno me pueda explicar o ayudar a entender .
Como se enlaza una tarjeta de pago a una app, gracias de antemano.

Muchas Gracias al equipo de PLATZI, aprendí mucho…

Hace un tiempo, antes de ver el curso de programación gratuito, pensé en hacer parte de las comunidades para aprender, apoyar, en fin, pero por algunos problemas problemas (estoy loco del coco…)… (en realidad es fobia social…) me es más fácil aprender (solo por gusto) de web por videos, haber llegado al final del curso, darme cuenta que tengo un amplio conocimiento y que puedo hacer cosillas aunque sea para entretenerme ha significado mucho por lo cual, agradezco al sr Freddy por todo… A los demás ojalá y deje de pegar el código, eso no aporta del todo.

2020-04-29 (1).png

Hola, adjunto las dos versiones, en ambas se puede probar cambiando las variables para validar si la transacción es posible o no.

Codigo varios if.PNG
simplificado.PNG

este video hubiera sido bueno de primero en el curso

Listo. El reto validando con un sólo IF:

<!DOCTYPE html>
<html>
	<meta charset="utf-8">
<head>
	<title>COMPUERTAS LÓGICAS</title>
</head>
<body>
	<h1>TRANSFERENCIAS BANCOVID AV.19</h1>
	<p>------------------</p>
	<p>Banco de Origen
		<select name="Borigen" id="Borigen">
			<option disabled selected>Banco de Origen</option>
			<option>BANCOVID</option>
			<option>BANCORONA</option>
			<option>BANCOLORADO</option>
			<option>BANCONÓMICO</option>
		</select>
	</p>
	
	<p>Número de cuenta Origen (del 1 al 5. Un valor diferente se tendrá como una cuenta inválida): </p>
	<input type="number" name="" id="Ctaorigen" min="1" max="5">
	
	<p>Saldo en cuenta Origen: </p>
	<input type="number" name="" id="Saldoorigen">
	
	<p>Hora actual de transferencia:
	<span id="hora"></span>
<p>------------------</p>
	<p>Banco de Destino
		<select name="Bdestino" id="Bdestino">
			<option disabled selected>Banco de Destino</option>
			<option>BANCOVID</option>
			<option>BANCORONA</option>
			<option>BANCOLORADO</option>
			<option>BANCONÓMICO</option>
		</select>
	</p>
	
	<p>Número de cuenta Destino (del 1 al 5. Un valor diferente se tendrá como una cuenta inválida): </p>
	<input type="number" name="" id="Ctadestino" min="1" max="5">

	<p>------------------</p>
	
	<p>Valor a transferir: </p>
	<input type="number" name="" id="Monto">
	<p><input type="button" value="TRANSFERIR..." id="boton"></p>
	<script src="compuertas.js"></script>
</body>
</html>```

Abajo el JS

Aquí esta mi trabajo:
último trabajo.jpg

Cuando estaba en colegio mi profesor nos enseño con un muñeco llamado PADIMUSURE:
PA-paréntesis
DI-División
MU-multiplicación
SU-suma
RE-resta

el resultado era esta cara:

( * / * )
+
------------

Estoy tan feliz de acabar el desafio y acabar el curso fue una bonita experiencia que me animo a aprender python y a aprender mas de JS. Gracias Team Plazti

var bancoCliente = "Porto";
var cuentaCliente = 12345;
var saldo = 1100;
var impuesto = 100;

var hora = Math.floor(Math.random()*(24 - 0 + 1)+ 0);
var reloj = hora;

var dinero = document.getElementById("dinero");
var destino = document.getElementById("destino");
var banco = document.getElementById("bank");
var boton = document.getElementById("ok");
boton.addEventListener("click",transferir);

console.log("Esta es la hora actual: " + reloj);

function transferir(){
if (reloj >= 9 && reloj <=12 || reloj >= 15 && reloj <= 20){
    var entregar = parseInt(dinero.value);
    var cuentaDestino = destino.value;
    var bancoDestino = banco.value;
    
    if(cuentaCliente == cuentaDestino)
    {
        var total;   
        if(saldo >= (entregar + impuesto))
        {
            if(bancoCliente == bancoDestino)
            {
                total = saldo - entregar;
                total = parseInt(total);
            }
            else
            {
                total = saldo - entregar - impuesto;
                total = parseInt(total);
            }
            console.log("Esto es lo que le queda de saldo: " + total);
        }
        else
        {
            alert("SALDO INSUFICIENTE")
        }
    }
    else
    {
        alert("La cuenta del Destinatario es incorrecta")
    }

    }
else{
    alert("El horario de atencion es de 9 a 12 y de 15 a 20. Por favor asista en esos horarios")
    }
}

La version corta usando las mismas variables de arriba

function transferir(){
    var entregar = parseInt(dinero.value);
    var cuentaDestino = destino.value;
    var bancoDestino = banco.value;
    if(bancoCliente == bancoDestino && cuentaCliente == cuentaDestino && (saldo >= (entregar + impuesto)) && (reloj >= 9 && reloj <=12 || reloj >= 15 && reloj <= 20)){
        total = saldo - entregar;
        total = parseInt(total);
        console.log("Esto es lo que le queda de saldo: " + total);
    }
    else if (cuentaCliente == cuentaDestino && (saldo >= (entregar + impuesto)) && (reloj >= 9 && reloj <=12 || reloj >= 15 && reloj <= 20)){
        total = saldo - entregar - impuesto;
        total = parseInt(total);
        console.log("Esto es lo que le queda de saldo: " + total);
    }
    else
    {
        console.log("No se que paso bro");
    }
    
}

Lo hice de la siguiente forma, algo sencillo, cuando coloco muchas condiciones en un solo if, suelo separarlas en expresiones booleanas sencillas y guardarlas en variables o constantes para poder colocarles nombres y que la condición final quede sencilla y puedas siempre revisar los componentes de cada expresión.

let banco_cliente = {
  id: 1,
  nombre_banco: "Bank of America"
};

let banco_destino = {
  id: 2,
  nombre_banco: "Commercebank"
};

let cuenta_cliente = {
  id: 1,
  nombre_cliente: "Luis Portillo",
  saldo: 1500000
};

let cuenta_destino = {
  id: 2,
  nombre_cliente: "Platzi"
};

let hora_transaccion = 12;
const cliente_verificado = banco_cliente.id == 1 && cuenta_cliente.id == 1;
const destino_verificado = banco_destino.id == 2 && cuenta_destino.id == 2;
let monto_neto = 1000000
const costo_transacción =
  monto_neto + (banco_cliente.id == banco_destino.id ? 0 : 100);
const transaccion_en_horario =
  (hora_transaccion >= 9 && hora_transaccion <= 12) ||
  (hora_transaccion >= 15 && hora_transaccion <= 20);
const saldo_suficiente = cuenta_cliente.saldo >= costo_transacción;

if (
  cliente_verificado &&
  destino_verificado &&
  saldo_suficiente &&
  transaccion_en_horario
) {
  console.log(`${cuenta_cliente.nombre_cliente} ha transferido ${monto_neto} USD a ${cuenta_destino.nombre_cliente}`)
} else {
  function mensaje_de_error(cond, message, errcode) {
    return cond ? `${message} ERR_${errcode} \n` : "";
  }
  let error_string = `${mensaje_de_error(
    cliente_verificado,
    "Cliente no verificado",
    "01"
  )} ${mensaje_de_error(
    destino_verificado,
    "Destino no verificado",
    "02"
  )} ${mensaje_de_error(
    saldo_suficiente,
    "Saldo insuficiente",
    "03"
  )} ${mensaje_de_error(transaccion_en_horario, "Horario no permitido", "04")}`;
  console.log(`Hubo un problema: \n ${error_string}`);
}

Por ejemplo, allí puedo leer: “Si cliente está verificado y el destino está verificado y el saldo es suficiente y actualmente es el horario en el que se permiten las transferencias, entonces puedo transferir”. Y siempre puedo revisar esas definiciones. Por ejemplo:

¿como evaluó si el cliente está verificado?

y lo que hago es volver a donde definí la constante, no sé si es una buena práctica, pero al menos a mi me ayuda a leer y a depurar con mayor facilidad.

Muy bueno gracias @freddier

Como vi que todos ya pusieron el reto de realizar el algoritmo con muchas lineas de código les dejo el de solo un if

var cliente = true;
var Pichincha = false;
var Pacifico = true;
var saldoCliente = 3000000;
var horaTranferencia = Math.round(Math.random()*24);
console.log(horaTranferencia);
var monto = 1000000;
var valorTransaccion;

function transferirDinero()
{
    valorTransaccion = 100;
    if([(Pichincha ^ Pacifico) && cliente && Pacifico] && (saldoCliente > monto + valorTransaccion) && horaTranferencia >= 9 && horaTranferencia <=12 || horaTranferencia >=15 && horaTranferencia <= 20)
    {
        document.write("Tu transaccion se ha realizado con exito");  
    }
    else
    {
        alert("Tu transaccion no fue realizada");
    }
}
transferirDinero();```

tengo trabajando en esto en mas de un 1 día. Espero alguien me ayude con una retroalimentación.

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>BDMX</title>
		<style type="text/css">
			body {
				background: linear-gradient(300deg, #1900ff, #73a4f0);
				font-family: helvetica;
				color: #ffffff;
			}
			strong {
				font-size: medium;
				font-family: "arial", Times, serif;
			}
		</style>
	</head>
	<body>
		<p><strong>BIENVENIDO A BDMX</strong><br /></p>

		<p0
			>ERES MIEMBRO DE <strong>BDMX</strong>?<br />
			<td>
				<input type="checkbox" id="checkBanco0" onclick="texValidarSiPuedes()" />
				Si
				<script>
					function texValidarSiPuedes() {
						// traer checkbanco
						var checkBox = document.getElementById("checkBanco0");
						// traer salida de checkBanco
						var text = document.getElementById("text");

						// If the checkbox is checked, display the output text
						if (checkBox.checked == true) {
							text.style.display = "none";
						} else {
							text.style.display = "block";
						}
					}
				</script>
			</td>
			<br /><br />
		</p0>

		<p1>
			FAVOR DE INGRESAR LA HORA EN FORMATO DE 24Hr<br />
			<input type="number" value="10" id="hORA0" /><br /><br />
		</p1>

		<p2>
			BANCO AL QUE DESEA TRANSFERIRI<br />
			<input type="text" value="BDMX" id="bANCOdESTINATARIO0" /><br /><br />
		</p2>

		<p3>
			NUMERO DE CUNETA<br />
			<input
				type="number"
				value="12345678"
				id="nUMEROcUANTA0"
				required
				minlength="4"
				maxlength="8"
				size="10"
			/>
			<br /><br />
		</p3>

		<p4>
			CUAL ES TU SALDO ACTUAL?<br />
			<input type="number" value="1200" id="sALDOaCTUAL0" /><br /><br />
		</p4>

		<p5>
			MONTO A TRANSFERIR<br />
			<input type="number" value="100" id="mONTOtRANSFERIDO0" /><br /><br />
			<p6 id="text" style="display: block">
				⚠⚠⚠ No eres parte de BDMX, no pordras transferir ⚠⚠⚠ </p6
			><br />
			<p_1><input type="button" value="TRANSFERIR" id="tRANSFERIR0" /><br /> </p_1>
		</p5>

		<p6 id="rESULTADO"></p6>

		<p7><script src="fuction_1.js"></script></p7>
	</body>
</html>

//boton para aplicar la transferencia.
var setingsLines = document.getElementById("tRANSFERIR0");
setingsLines.addEventListener("click", transferir);

var resultado = document.getElementById("rESULTADO");
function transferir() {
	var perteneceBanco = document.getElementById("checkBanco0");
	var horaActual = parseInt(document.getElementById("hORA0").value);
	var saldoActual = parseInt(document.getElementById("sALDOaCTUAL0").value);
	var montoTransferido = parseInt(document.getElementById("mONTOtRANSFERIDO0").value);
	var bancoDestinatario = document.getElementById("bANCOdESTINATARIO0").value;
	var numeroDeCunetaDestinataria = parseInt(
		document.getElementById("nUMEROcUANTA0").value
	);
	if (perteneceBanco.checked == true) {
		if (
			(horaActual >= 9 && horaActual < 12) ||
			(horaActual >= 15 && horaActual < 20)
		) {
			if (bancoDestinatario == "BDMX") {
				if (montoTransferido < saldoActual) {
					resultado.innerHTML +=
						"<br /> su transaccion a la cuanta " +
						numeroDeCunetaDestinataria +
						" fue exitosa, su saldo es de " +
						(saldoActual - montoTransferido) +
						" $.<br />";
					saldoActual -= saldoActual - montoTransferido;
					console.log(saldoActual);
				} else {
					resultado.innerHTML += "<br /> saldo induficiente. <br />";
				}
			} else {
				if (montoTransferido + 100 < saldoActual) {
					resultado.innerHTML +=
						"<br /> Su transaccion a la cuanta " +
						numeroDeCunetaDestinataria +
						" con cargo de 100$ por comision, fue exitosa, su saldo es de " +
						(saldoActual - (montoTransferido + 100)) +
						" $.<br />";
					saldoActual -= saldoActual - (montoTransferido + 100);
					console.log(saldoActual);
				}
			}
		} else {
			resultado.innerHTML += "<br />Fuera de Horario, vuelma mas tarde. <br />";
		}
	} else {
		resultado.innerHTML += "<br />Lo siento no es posible. <br />";
	}
}
//

Usando lapiz es mejor !

Untitled.png
if ( (hora >= 9 && hota < 12 || hora >=15 && hora < 20 )  && cliente && destino && ( bancCliente == bancDestino ) && (saldo > Monto) ){
	enviarDinero();
}else{
	console.log("No se puede");
}

Aqui mis codigos

<code><!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Transferencias Bancarias</title>
  </head>
  <body>

    <p>Realiza tu transferencia</p>
  
    <input type="button" name="" id="boton" value="Transferir">
    <p id="resultado"></p>

    <script type="text/javascript" src="deposito.js"></script>

  </body>
</html>








var cliente1 = "thomas";
var bancoCliente1 = "BPN";
var saldoCliente1 = 120000;
var result = document.getElementById("resultado");
var dinero = 0;

var dinero = parseInt(prompt ("dinero", ""));

console.log(dinero);

var bot = document.getElementById("boton");
bot.addEventListener("click", transferencia);


//setUp
var horaActual = 9.15;
var costoTrans = 100;

//Destino
var cliente2 = "Pedro";
var bancoCliente2 = "BPN";



function transferencia()
{
  console.log(dinero);
  if ((verificado(cliente2)) && (verificado(bancoCliente2)) &&
  (disponibilidad(saldoCliente1,dinero,bancoCliente1,bancoCliente2)) && (enorario(horaActual)))
  {
    result.innerHTML = "Transferencia confirmada";
  }
  else
  {
      result.innerHTML = "Transferencia negada";
  }

}

function verificado(c)
{
    if ((c == "Pedro") || (c == "BPN"))
    {
      return true;
    }
    else
    {
      return false;
    }
}

function enorario(h)
{
  if (((h>=9) && (h<=12)) ^ ((h>=15) && (h<=20)))
  {
    return true;
  }
  else {
    return false;
  }
}

function disponibilidad(s,d,b1,b2)
{
  if (b1 != b2)
  {
    if (s>=d+100)
    {
      return true;
    }
    else {
      return false;
    }
  }
  else
  {
    if (s>=d)
      {
        return true;
      }
    else {
       return false;
    }
    }
}

Lo are y espero no morir en el intento :"v

JS

var nom_cliente_destino = document.getElementById("nombre_cliente_destino");
var numero_ident_destino = document.getElementById("numero_identificacion_destino");
var cuenta_destino = document.getElementById("cuenta_cliente_destino");
var banco_destino = document.getElementById("banco_cliente_destino");
var monto_transferencia = document.getElementById("monto_trans_destino");
var concepto_trans = document.getElementById("concepto_trans_html");

var boton = document.getElementById("boton_html");
boton.addEventListener("click", transferencia);
var boton_ocultar = document.getElementById("ocultar_datos");
boton_ocultar.addEventListener("click", ocultar_datos);
var boton_mostrar = document.getElementById("mostrar_datos");
boton_mostrar.addEventListener("click", mostrar_datos);


class Cliente{
	constructor(nombre, cedula, n_cuenta, saldo){
		this.nombre = nombre;
		this.cedula = cedula;
		this.n_cuenta = n_cuenta;
		this.saldo = saldo;
	}
	mostrar(){
		console.log("Datos del cliente:")
		console.log("Nombre: " + this.nombre);
		console.log("Cedula: " + this.cedula);
		console.log("Cuenta: " + this.n_cuenta);
		console.log("Saldo inicial de la cuenta: " + this.saldo);
	}
}

var clientes = [];
clientes.push( new Cliente ("Emily Martinez", 123456789, "01340142050123456789", 1000) );

for (var clienteactual of clientes) {
	clienteactual.mostrar();
}

//Datos del Banco
var nom_banco = "Bank";

//Datos del cliente
var nom_cliente = "Emily Martinez";
var cliente = true;

//Datos de la cuenta
var cuenta_cliente = "01340142050123456789";
var saldo_inicial = 100000;
var saldo_actual = saldo_inicial;

//Datos de la transferencia
var comision = 100;
var hora = 10;
var destino = true;

nombre_del_cliente.innerHTML = nom_cliente;
saldo_cuenta_cliente.innerHTML = saldo_inicial + " USD";
	

function transferencia(){
	/*document.body.style.fontSize="20px";*/		
	if (cliente && (hora > 9 && hora < 12 || hora > 14 && hora < 21) && destino) {	
		monto_transferencia = parseInt(monto_transferencia.value);
		if (banco_destino.value == nom_banco) {
			if (saldo_actual >= monto_transferencia) {
				document.getElementById("div_datos_trans").style.display="inline";
				saldo_actual = saldo_actual - monto_transferencia;
				n_cliente_destino.innerHTML = nom_cliente_destino.value;
				n_ident_destino.innerHTML = numero_ident_destino.value;
				c_cliente_destino.innerHTML = cuenta_destino.value;
				b_cliente_destino.innerHTML = banco_destino.value;					
				m_trans_destino.innerHTML = monto_transferencia;
				c_trans_destino.innerHTML = concepto_trans.value;
					console.log("Tranferencia sin comision");
					console.log("Cliente destino: " + nom_cliente_destino.value);
					console.log("Cuenta destino: " + cuenta_destino.value);
					console.log("Banco destino: " + banco_destino.value);
					console.log("Monto de la transferencia es: " + monto_transferencia);
					console.log("Saldo actual es: " + saldo_actual);
			}
			else{
				console.log("Saldo Insuficiente");
				saldo_html.innerHTML = "Saldo Insuficiente";
			}			
		}
		else{
			monto_transferencia = monto_transferencia + comision;
			if (saldo_actual >= monto_transferencia) {				
				document.getElementById("div_datos_trans").style.display="inline";
				saldo_actual = saldo_actual - monto_transferencia;			
				n_cliente_destino.innerHTML = nom_cliente_destino.value;
				n_ident_destino.innerHTML = numero_ident_destino.value;
				c_cliente_destino.innerHTML = cuenta_destino.value;
				b_cliente_destino.innerHTML = banco_destino.value;					
				m_trans_destino.innerHTML = monto_transferencia;
				c_trans_destino.innerHTML = concepto_trans.value;
					console.log("Transferencia con comision");
					console.log("Cliente destino: " + nom_cliente_destino.value);
					console.log("Cuenta destino: " + cuenta_destino.value);
					console.log("Banco destino: " + banco_destino.value);
					console.log("Monto de la transferencia es: " + monto_transferencia);
					console.log("Monto actual es: " + saldo_actual);
			}
			else{
				console.log("Saldo Insuficiente");
				saldo_html.innerHTML = "Saldo Insuficiente"; 
			}			
		}	
	}
	else{
		if (!cliente) {
			cliente_verificado_hmtl.innerHTML = "Cliente no verificado";
		}
		if (hora < 9 || hora > 12 && hora < 15 || hora > 20) {
			horario_html.innerHTML = "No se puede hacer transferencias en este momento. <br> El Horario de transferencia es de: 9am - 12m / 15h - 20h";
		}
		if (!destino) {
			destino_verificado_html.innerHTML = "Destino no verificado";
		}
	}
}

function ocultar_datos(){
	document.getElementById("div_datos_trans").style.display="none";
	document.getElementById("mostrar_datos").style.display="inline";
}

function mostrar_datos(){
	document.getElementById("div_datos_trans").style.display="inline";
	document.getElementById("mostrar_datos").style.display="none";
}```

ahora, a por el examen!!!

Si ponen la velocidad del vídeo a 0.5x parece que Freddy está dando la clase después de subir del bar! jajaja Grande!!

Excelente video!!

Preguntar q carajos Jjajajajajajajaja

excelente curso Freddy!! Muy buena explicacion!

var cliente_verificado = true;
var saldo_cliente =2000000;
var banco_cliente ="popular";
var banco_destino ="bhd";
var hora_actual = 9;
var costo_banco_diferente =100;
var monto_a_transferir =1000000;
var monto_total=0;


if (cliente_verificado)
{
   if (hora_actual >=9 && hora_actual<=12 || hora_actual >=15 && hora_actual <=20)
   {
              if(banco_cliente== banco_destino)
              {
                  if(saldo_cliente >= monto_a_transferir)
                  {
                    monto_total =monto_a_transferir;
                    alert("Felicidades, su transferencia fue realizada con exito.");
                    console.log(monto_total,banco_destino);
                  }
                  else
                  {
                     alert("usted no cuenta con suficiente saldo para transferir");
                  }
              }
              else
              {
                if(saldo_cliente >= monto_a_transferir + costo_banco_diferente)
                {
                  monto_total =monto_a_transferir + costo_banco_diferente;
                  alert("Felicidades, su transferencia fue realizada con exito.");
                  console.log(monto_total,banco_destino);
                }
                else
                {
                   alert("usted no cuenta con suficiente saldo para transferir");
                }
              }
   }
   else
   {
     alert("No se puede hacer transferencias en este horario, intentelo mas tarde.");
   }
}
else
{
 alert("el cliente no pudo ser verificado");
}

var cuentas =
{
cta1 : true,
cta2 : true,
cta3 : false
}

function transferir(dinero, bancoCliente, ctaCliente, saldoCliente, bancoDestino, ctaDestino, hrTransferencia)
{
if (cuentas[ctaCliente] == true && cuentas[ctaDestino] == true)
{
var costoTransaccion = 0
if (bancoCliente !== bancoDestino)
{
costoTransaccion = 100
}
if ((saldoCliente + costoTransaccion) => dinero)
{
if (hrTransferencia >= 9 && hrTransferencia <= 12)
{
return true;
}
else if (hrTransferencia >= 15 && hrTransferencia <= 20)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}

transferir(100, “Santander”, “cta1”, 5000, “Banamex”, “cta2”, 10);


en una sola línea(en esto me ayudó mi novio :3):

var transferir = (dinero, bClt, ctaClt, saldoCliente, bDes, ctaDes, hr, ctas = { cta1 : true, cta2 : true }) => (ctas[ctaClt] && ctas[ctaDes]) && ((saldoCliente + (bClt !== bDes ? 100 : 0 )) => dinero) && (hr >= 9 && hr <= 12) || (hr >= 15 && hr <= 20)

transferir(100, “Santander”, “cta1”, 5000, “Banamex”, “cta2”, 10);
transferir(1000, “Santander”, “cta1”, 5000, “Santander”, “cta2”, 10);
transferir(1000000, “Santander”, “cta1”, 5000, “Santander”, “cta2”, 10);

var respuesta = document.getElementById(“respuesta”);

var transaccion = document.getElementById(“extraer”);
transaccion.addEventListener(“click”, transferencia);

var cuentaCliente = 1000000;
var banco = “bancolombia”;
var cuentaDestino = 1;

var tiempo = new Date();
var hora = tiempo.getHours();

function transferencia ()
{
comparacion();
var r = document.getElementById(“dinero”);
var retiro = parseInt(r.value);
if ((hora >= 8 && hora <= 12) || (hora >= 14 && hora <= 18))
{
if (cuentaCliente && cuentaDestino)
{
if (cuentaCliente >= cuentaCliente)
{
cuentaDestino = retiro;
cuentaCliente = cuentaCliente - retiro;
console.log(cuentaCliente);
console.log(cuentaDestino);
}
respuesta.innerHTML += “<hr /> Transferencia exitosa <br>”;
respuesta.innerHTML += "Su saldo actual es de: " + cuentaCliente + “<br>”;
}
}
else
{
respuesta.innerHTML += “El horario de transferencias es de 8 a 12 y de 15 a 20”;
}
}

function comparacion()
{
var n = document.getElementById(“banco”);
var nombreBanco = n.value;
if (banco != nombreBanco)
{
var valorTransaccion = 7000;
cuentaCliente = cuentaCliente - valorTransaccion;
}
}

function mueveReloj()
{
momentoActual = new Date();
hora = momentoActual.getHours();
minuto = momentoActual.getMinutes();
segundo = momentoActual.getSeconds();

horaImprimible = hora + " : " + minuto + " : " + segundo;

document.form_reloj.reloj.value = horaImprimible;
setTimeout("mueveReloj()",1000);

}

var resultado = document.getElementById("respuesta");

var bancoOrigen = "BNC";
var clienteOrigen = true;
var saldoCliente = 999999;
var montoTranf = 1000000;
var bancoDestino = "BNC";
var clienteDestino = true;
var horario = 19 + 60/60;
var cargo = 100;

var saldoBoolean = saldoCliente >= montoTranf + (bancoOrigen != bancoDestino)*cargo;
var horarioBoolean = (horario >= 9 && horario < 12) || (horario >= 15 && horario < 20);

if (saldoBoolean && clienteOrigen && clienteDestino && horarioBoolean) {
  resultado.innerHTML = "Transaccion Exitosa";
} else {
  var result = "";
  if (!saldoBoolean) { result += "No posee saldo suficiente <br />" };
  if (!clienteOrigen) { result += "Cliente origen no valido <br />"};
  if (!clienteDestino) { result += "Cliente Destino no valido <br />"};
  if (!horarioBoolean) { result += "Horario no permito <br />"};
  resultado.innerHTML = result;
};```

excellent!

¡Hola! A continuación les dejo mis códigos.

El primer con condiciones anidadas:

var hora = 10;
var banco_cliente = "Banco de Venezuela";
var cuenta_cliente = 0;
var cuenta_cliente_verificada = false;
var cantidad_transferir = 1000000;

var banco_destino = "Banco de Venezuela";
var cuenta_destino = 0;
var cuenta_destino_verificada = true;

var comision = 100;

if (hora > 9 && hora < 12 || hora > 15 && hora < 20) {
  if (cuenta_cliente_verificada && cuenta_destino_verificada) {
    if (banco_cliente == banco_destino) {
      if (cuenta_cliente >= cantidad_transferir) {
        console.log("Transferencia de " + cantidad_transferir + " se ha realizado exitosamente.");
      } else {
        console.log("No hay suficiente dinero para realizar la transferencia.");
      }
    } else {
      if (cuenta_cliente >= cantidad_transferir + comision) {
        console.log("Se ha transferido la cantidad de " + cantidad_transferir + " exitosamente y se ha cobrado una comisión de " + comision + ".");
      }
    }
  } else {
    console.log("Ambas cuentas deben estar verificadas para hacer la transacción.");
  }
} else {
  console.log("Solo puedes hacer transacciones de 9 a 12 horas y de 15 a 20 horas.")
}

El segundo donde en una sola condición se chequean todos los requerimientos:

var hora = 10;
var banco_cliente = "Banco de Venezuela";
var cuenta_cliente = 10000000;
var cuenta_cliente_verificada = true;
var cantidad_transferir = 1000000;

var banco_destino = "Banco de Venezuela";
var cuenta_destino = 0;
var cuenta_destino_verificada = true;

var comision = 100;

if ((hora > 9 && hora < 12 || hora > 15 && hora < 20) && (cuenta_cliente_verificada && cuenta_destino_verificada) && (banco_cliente == banco_destino || banco_cliente != banco_destino) && (cuenta_cliente >= cantidad_transferir + comision)) {
  console.log("Transferencia de " + cantidad_transferir + " se ha realizado exitosamente.");
} else {
  console.log("Por alguna razón no se ha podido realizar la transferencia.");
}

¡Excelente forma de explicar este tema! Suele ser bastante confuso.

No esta todo en un “If” por la razón de quienes quieran un código mas interactivo, con diferentes resultados, en un “Else” y a vista propia se ve mas organizado y limpio.

//Datos del Cliente
var cliente = {
  Banco: "BancoColombia",
  Saldo: 2500000,
  Cuenta: "1234.5678.9101.1121"
}

//Datos del Banco
var banco = {
  Destino: "BancoColombia"
}

//cuentas de usuarios registrados en el Banco
var cuentas = []
cuentas.push("1234.5678.9101.1121");

//variables declaradas
var resultado;
var saldoFinal;
var montoTransferir = 1000000;
var costoTransferencia = 0;

//Hora
var h = new Date();
var hm = h.getHours();

//Operacion para la disponibilidad de una transaccion
var saldoTotal = cliente.Saldo + costoTransferencia - montoTransferir;

//Procedimientos para llevar a cabo la transaccion
if(cliente.Cuenta == cuentas)
{
  if(saldoTotal > montoTransferir)
  {
    if((cliente.Banco == banco.Destino) && (hm >= 9 && hm <= 12 || hm >= 15 && hm <= 20))
    {
      costoTransferencia = 0;
      resultado = montoTransferir + costoTransferencia;
      saldoFinal = cliente.Saldo - resultado;
      console.log("Transaccion Exitosa por: " + resultado);
      console.log("Ahora tu saldo es de: " + saldoFinal);
    }
    else if((cliente.Banco != banco.Destino) && (hm >= 9 && hm <= 12 || hm >= 15 && hm <= 20))
    {
      costoTransferencia = 100;
      resultado = montoTransferir + costoTransferencia;
      saldoFinal = cliente.Saldo - resultado;
      console.log("Transaccion Exitosa por: " + resultado);
      console.log("Ahora tu saldo es de: " + saldoFinal);
    }
    else {
      console.log("Sistema en Fuera de Servicio");
    }
  }
  else {
    console.log("Saldo Insuficiente");
  }
}
else {
  console.log("Cuenta No Registrada");
}

Mi aporte

var bankClientAcount = "BanColombia";
var clientAcount = "0104-2568-4897-5487";
var valueClientAcount = 1500000;

/******* DESTINO *******/
var hostBank = "BanColombia";
var hostAcount = "0104-4879-8564-6562";

/******* TRANSFER ******/
var valueTranfer = 1000000;
var timeTranfer = 11;
var taxTransfer = 100;

/******* CHEKING *******/
var checkClient = true;
var checkHost = true;

if (bankClientAcount != hostBank)
{
  valueTranfer += taxTransfer;
}
if ( ((timeTranfer>=9 && timeTranfer<=12) ^ (timeTranfer>=15 && timeTranfer<=20)) && checkClient && checkHost && (valueClientAcount>=valueTranfer) )
{
  tranferFunction();
}
else
{
  console.log("TRANSFERENCIA NO PERMITIDA");
}
function tranferFunction ()
{
  console.log("TRANSFERENCIA PROCESADA");
}

Ya vi que si se puede en una sola linea jaja, aun asi lo prefiero al menos en 2, porque se ve muy raro asi todo junto.

var boton= document.getElementById("boton");
var texto= document.getElementById("cantidad");
boton.addEventListener("click", transferir)

var bancoCliente= "Santander"
var cuentaCliente= true;
var saldoCliente= 2500000;
var bancoDestino= "Santander";
var cuentaDestino= true;

var horaTransferencia= 15;
var transferirDinero;
var saldo_actual= document.getElementById("Saldo");
saldo_actual.innerHTML= "<strong>Su saldo actual es: " + saldoCliente + "</strong>";

function transferir()
{
    transferirDinero= parseInt(texto.value);
    if( (cuentaCliente && cuentaDestino) && saldoCliente >= ( (bancoCliente != bancoDestino && transferirDinero + 100) ^ (bancoCliente == bancoDestino && transferirDinero) ) && (horaTransferencia >= 9 && horaTransferencia <= 12 || horaTransferencia >= 15 && horaTransferencia <= 20) )
    {
        alert("Transferencia exitosa");
    }
}```

Si quieren aprender más sobre lógica les recomiendo un libro que se llama Introducción a la lógica por Irving M. Copi y Carl Cohen , es de lógica matemática pero todo esto se explica a profundidad, es bastante bueno y te ayuda a entender bastante de cómo funcionan nuestros computadores. Espero sea útil 😉.

Los invito a probarlo, hecho para trabajar en la consola del explorador , pueden cambiar los valores entre “true” o “false” para observar los diferentes mensajes en caso de fallar algunas de las condiciones

var bancoCliente = true, cuentaCliente = true, saldoCliente = 1000000;
var bancoDestino = true, cuentaDestino = true;
var horaDeTransferencia = 15;
var costoDeTransaccion;


function transferir(){
    if(horaDeTransferencia >=9 && horaDeTransferencia <=12 ^ horaDeTransferencia >=15 && horaDeTransferencia <=20){
        if(cuentaCliente){
            if(cuentaDestino){
                if(bancoCliente == bancoDestino){
                    costoDeTransaccion = 0;
                }
                else{
                    costoDeTransaccion = 100;
                }
                if(saldoCliente>= montoATransferir){
                    saldoCliente = saldoCliente-(montoATransferir+costoDeTransaccion);
                }else{
                    console.log("saldo insuficiente");
                }
            }
			else{
					console.log("cuenta destino no verficada");
            }
        }
		else{
				console.log("cuenta cliente no verificada");
        }
    }
	else{
			console.log("Horario de transaccion fuera del permitido \n sistema habilidado de 09:00 a 12:00 y de 15:00 a 20:00");
    }
    console.log("saldo de cuenta cliente = " + saldoCliente);
}

Agrege la opcion de poner una hora o la hora real y así probar el codigo, esta un poco largo ya que intente poner en practiva varias cosas vistas en el curso.
Espero sea de ayuda para los demás.

transac.PNG

HTML

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <link rel="stylesheet" href="style.css" />
        <title>Transferencia</title>
    </head>
    <body>
        <h1>Transferencia</h1>
        <form class='Cliente'>
            <h3>Datos Cliente</h3>
            <p>
                Valor a transferir: 
                <input type="number" placeholder="Valor a transferir" value=0 id="vTrans">
            </p>
            <select name="" id="bCliente"><!--Desplegable-->
                <option value="">Seleccione banco del Cliente</option>
                <option value="BBVA">BBVA</option>
                <option value="Bancolombia">Bancolombia</option>
                <option value="Davivienda">Davivienda</option>
                <option value="Colpatria">Colpatria</option>
            </select>
            </br>
            <input type="checkbox" id="checkCli">Confirmar cuenta
            <p id='sCliente'></p>
        </form>
        <form class='Destino'>
            <h3>Datos Destino</h3>
            <select name="" id="bDestino"><!--Desplegable-->
                <option value="">Seleccione banco de Destino</option>
                <option value="BBVA">BBVA</option>
                <option value="Bancolombia">Bancolombia</option>
                <option value="Davivienda">Davivienda</option>
                <option value="Colpatria">Colpatria</option>
            </select>
            </br>
            <input type="checkbox" id="checkDest">Confirmar cuenta
            </br>
            </br>
            <input type="button" value="Realizar Transacción" id="Transacción">
            <p id='mFinal'></p>
        </form>
        <span>
            <h4> Hora </h4>
            <form action="Hora">
                <input type="button" value="Actualizar" id="Actualizar">
                </br>
                <input type="number" placeholder="Hora" id="hFalsa">
                <input type="number" placeholder="Minutos" id="mFalsa">
                <input type="checkbox" id="checkHora">Hora falsa
            </form>
            <p id='hora'></p>
        </span>
        <script src="Clase.js"></script>
        <script src="Datos.js"></script>
        <script src="transferencia.js"></script>
    </body>
</html>

JavaScript Clase

class Usuario
{
    constructor(b,c,m,s)//IDBanco,IDcheck,IDMensaje,Saldo
    {
        this.IDbanco = document.getElementById(b);
        this.IDconfirmacion = document.getElementById(c);
        this.IDmensaje = document.getElementById(m);
        this.confir = this.IDconfirmacion.checked;
        this.saldo = s;
        this.banco;
    }
    imprimir()
    {
        this.confir = this.IDconfirmacion.checked;
        //console.log(this.confir);
    }
}

JavaScript de captura de datos

/*
Cliente:    IDBanco IdConfirmación IDSaldo    bancoCli confir
Destino:    IDBanco IDConfirmación IDMensaje  bancoDes confir

Hora:   HReal       HouF    MinF   Confirmación
        horaActual                 HFalsa 
*/

var Users = []; //0:Cliente, 1:Destino

    Users.push(new Usuario('bCliente','checkCli','sCliente',1500000));
    Users.push(new Usuario('bDestino','checkDest','mFinal',0));

//------------------Bancos------------------

//Recolecta dato seleccionado del banco
Users[0].IDbanco.addEventListener('change',ban0);
Users[1].IDbanco.addEventListener('change',ban1);

function ban0()
{
    Users[0].banco = Users[0].IDbanco.value;
}
function ban1()
{
    Users[1].banco = Users[1].IDbanco.value;
}

//-------------Confirmacion----------------   

//Confirma la seleccion del checkbox
Users[0].IDconfirmacion.addEventListener('click',con0);
Users[1].IDconfirmacion.addEventListener('click',con1);

function con0()
{
    Users[0].imprimir();
}
function con1()
{
    Users[1].imprimir();
}

///////////////BOTON DE TRANSACCIÓN/////////////

var button = document.getElementById('Transacción');

///////////////Valor a transferir/////////////////

var Cant = document.getElementById('vTrans');

////////////////////HORA///////////////////////

var HORA = {

    IDHora : document.getElementById('hora'),
    IDCheck : document.getElementById('checkHora'),
    IDHfalse : document.getElementById('hFalsa'),
    IDMfalse : document.getElementById('mFalsa'),
    IDActualizar : document.getElementById('Actualizar'),
    RealDate : new Date(),
    check : false
};

//-------------Imprime hora a usar----------------
var horas = HORA['RealDate'].getHours();
var minutos = HORA['RealDate'].getMinutes();

HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':'+minutos+' Hora real';

//-----------Actualizar Hora-----------------

HORA['IDActualizar'].addEventListener('click',Actualizar); //Boton de actualizar hora
HORA['IDCheck'].addEventListener('click',Actualizar); //Check de hora falsa

function Actualizar()
{
    HORA['check'] = HORA['IDCheck'].checked; //identifica estado del check
    if(HORA['check']) //Introduccion de hora manual(falsa)
    {
        horas = HORA['IDHfalse'].value;
        minutos = HORA['IDMfalse'].value;
        horacorrecta();
    }
    else // En caso de querer la hora real
    {
        HORA['RealDate'] = new Date();
        horas = HORA['RealDate'].getHours();
        minutos = HORA['RealDate'].getMinutes();
        if (minutos>=0 && minutos<10)
        {
            HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':0'+minutos+' Hora real';
        }
        HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':'+minutos+' Hora real';
    }
}

// Verifica si la hora falsa es correcta 
function horacorrecta()
{
    //Minutos
    if (minutos == "")
    {
        HORA['IDHora'].innerHTML ="Corrige la hora";
    }
    else if (minutos>=0)
    {
        if (minutos<60)
        {
            CorHora();
        }
        else
        {
            HORA['IDHora'].innerHTML ="Corrige los minutos";    
        }
    }
    else
    {
        HORA['IDHora'].innerHTML ="Corrige los minutos";
    }
}
function CorHora()
{
    //Horas
    if (horas == "")
    {
        HORA['IDHora'].innerHTML ="Corrige la hora";
    }
    else if (horas>=0)
    {
        if (horas<=24)
        {
            if (minutos<10)
            {
                HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':0'+minutos+' Hora falsa';
            }
            else 
            {
                HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':'+minutos+' Hora falsa';
            }
        }
        else
        {
            HORA['IDHora'].innerHTML ="Corrige la hora";    
        }
    }
    else
    {
        HORA['IDHora'].innerHTML ="Corrige la hora";
    }
}

JavaScript del proceso


/*
Variables a usar:

Users[0].banco // Banco usuario
Users[1].banco // Banco destino
Users[0].saldo // Saldo usuario
Users[1].saldo // Saldo destino
Users[0].confir // Confirmación usuario
Users[1].confir // Confirmación destino
Users[0].IDmensaje // Mensaje de saldo
Users[1].IDmensaje // Mensaje de confirmaciòn
horas // hora de transacción
minutos // minutos de transacción
*/
var proceso,comision;
var valTransaccion;


button.addEventListener('click',horaTrabajo);
function horaTrabajo()
{
    proceso = true;
    comision = 0;
    Users[0].IDmensaje.innerHTML = "Saldo disponible: $"+ Users[0].saldo;
    Users[1].IDmensaje.innerHTML = "Saldo destino: $"+Users[1].saldo+"</br>";
    valTransaccion = parseInt(Cant.value);
    //Confirmación de hora de trabajo
    if (horas<9 || horas>20 || (horas==20 && minutos != 0) || (horas==12 && minutos != 0))
    {
        Users[1].IDmensaje.innerHTML += "</br>-Hora incorrecta";        
        proceso = false;
    }
    //Confirmación de cuentas
    if (Users[0].confir==false || Users[1].confir==false)
    {
        Users[1].IDmensaje.innerHTML += "</br>-Usuarios sin confirmar";
        proceso = false;
    }
    //Selección de bancos y Comisiones
    if (Users[0].banco == undefined || Users[1].banco == undefined) 
    {   
        Users[1].IDmensaje.innerHTML += "</br>-Bancos sin definir";
        proceso = false;
    }
    else if (Users[0].banco != Users[1].banco)
    {
        comision = 100;
    }
    //Monto mayor a transalado
    if (valTransaccion > Users[0].saldo)
    {
        Users[1].IDmensaje.innerHTML += "</br>-Saldo insuficiente para transacción";
        proceso = false;
    }
    //
    if (valTransaccion == 0 || valTransaccion < 0)
    {
        Users[1].IDmensaje.innerHTML += "</br>-Valor de transferencia no definido o incorrecto";
        proceso = false;
    }   
    //
    if (proceso)
    {
        Users[0].saldo -= (valTransaccion + comision); 
        Users[1].saldo += valTransaccion; 
        Users[0].IDmensaje.innerHTML = "Valor debitado: $"+(valTransaccion+comision)+"</br>Saldo disponible: $"+ Users[0].saldo;
        Users[1].IDmensaje.innerHTML = "Valor de transacción: $"+valTransaccion+"</br>Valor de comisión: $"+comision+"</br>Saldo destino: $"+Users[1].saldo;        
    }
    else
    {
        Users[1].IDmensaje.innerHTML += "</br>No fue posible realizar la transacción";        
    }
}

Users[0].IDmensaje.innerHTML = "Saldo disponible: $"+ Users[0].saldo;
Users[1].IDmensaje.innerHTML = "Saldo destino: $"+Users[1].saldo;

Ya le agregue la funcion para determinar si el cliente es o no es cliente aprobado del banco:

var clienteAprobado =[a = true, b = false];
var clienteCheck = clienteAprobado[Math.floor( Math.random() * clienteAprobado.length ) ];``

Y esta es mi versión de un if 😄

var banco_cliente = "BanLeo";
var cuenta_cliente = true;
var transferencia = 1000000;
var costo_transaccion = 100;
var saldo_cliente = 1000500;
var banco_destino = "PlatziBank";
var cuenta_destino = true;
var hora = 16;

if ((cuenta_cliente && cuenta_destino) && (9 <= hora && hora <= 12 || 15 <= hora && hora <= 20) && (saldo_cliente > (transferencia + costo_transaccion * (banco_cliente != banco_destino))))
{
  console.log("Tu transaccion ha sido exitosa y se ha cobrado una comision de " + costo_transaccion * (banco_cliente != banco_destino));
}
else
{
  console.log("Tu transaccion no cumple una de las condiciones");
}

A seguir aprendiendo…

Aquí les dejo mi versión…

var banco_cliente = true;
var cuenta_ cliente = true;
var saldo_cliente = 1500000;
var banco_destino = true;
var cuenta_destino = true;
var hora_de_trasnferencia = 15;
var monto_a_transferir = 1000000;
var costo_de_envio = 100000;

//trasnferir 1 millón de dolares

if (cliente && banco_destino && saldo_cliente > (monto_a_transferir + costo_de_envio))
{
  alert("Se puede enviar el dinero");
}

if (banco_cliente == banco_destino)
{
  costo_de_envio = 0;
}
else
{
  costo_de_envio;
}

if((hora_de_trasnferencia > 9 && > 12) || (hora_de_trasnferencia > 15 && >20))
{
  alert("Se puede enviar el dinero");
}```

tengo esta condicional y funciona bien pero, cuando le agrego un if else sobre todo para establecer la hora me da error.

if (bancoCliente != bancoDestino)
{
  if(valorTRansferenciaTotal < saldo)
  {
    var valorTRansferenciaTotal = Math.floor(valorTRansferencia * 1.15);
    costoT = valorTRansferenciaTotal - valorTRansferencia;
    console.log(costoT);
    nuevoSaldo = saldo - valorTRansferenciaTotal;
    document.getElementById("exitosa").innerHTML = "transferencia exitosa, te costo: " + costoT + ", le enviaste " + valorTRansferenciaTotal + " a la cuenta " + cuentaDestino + ", tu nuevo saldo es: " + nuevoSaldo ;
  }
   else
  {
     document.getElementById("exitosa").innerHTML = "ERROR!! saldo insuficiente, tu saldo siguen siendo: " + saldo;
   }

}
 else
  {
     costoT = 0;
     nuevoSaldo = saldo - valorTRansferencia;
     document.getElementById("exitosa").innerHTML = "transferencia exitosa, te costo: " + costoT + ", le enviaste " + valorTRansferencia + " a la cuenta " + cuentaDestino + ", tu nuevo saldo es: " + nuevoSaldo ;

  }```
Sin título.png

Elaboración de Diagrama de Flujo:
![](Diagrama de Flujo de Tarea.jpg

Si entiendes bien las compuertas lógicas y tablas de verdad puedes realizar lo que sea. Ya sea Hardware o Software

Segundo reto:

transferunif.png
transferunif2.png

Este es el diagrama de flujo de un solo IF:
Diagrama de Flujo de Tarea 2.jpg

Así es como se ve la Web, con las entradas y resultados. Funciono de maravilla.

Resultado Web.jpg

Nice

Aquí esta el código para un solo IF:

var banCLI, banDES, cuenCLI, cuenDES, saldo, costoTra, montoT;
var hora, cliVer, desVer;
var traf =document.getElementById("resultadoTex");//Donde se colocaran los textos de resultado


 var c=document.getElementById("efectuar");//boton que efectuara las acciones y lla mara a la funcion principal
 c.addEventListener("click", procesarTransaccion);

 function procesarTransaccion()
 {
   banCLI =document.getElementById("TextBanCli");//almacena el banco del cliente
   banCLI = banCLI.value;
   banDES =document.getElementById("TextBanDes");//almacena el banco de destino
   banDES = banDES.value;
   cuenCLI =document.getElementById("TextCuenCli");//almacena la cuenta del cliente
   cuenCLI = parseInt(cuenCLI.value);
   cuenDES =document.getElementById("TextCuenDes");//almacena la cuenta de destino
   cuenDES = parseInt(cuenDES.value);
   saldo =document.getElementById("TextSaldo");// almacena el saldo de la cuenta
   saldo = parseInt(saldo.value);
   montoT =document.getElementById("TextMontoT");//almacena el monto que se desea transferir
   montoT = parseInt(montoT.value);
   hora =document.getElementById("TextHora");//almacena la hora de la transaccion
   hora = hora.value;

   traf.innerHTML= "Resumen:<br>"

   if (((banCLI!="")&&(cuenCLI>0)&&(banDES!="")&&(cuenDES>0)&&(((hora > "09:00")&&(hora < "12:00"))||((hora > "15:00")&&(hora < "20:00")))&&(banDES==banCLI)&&(saldo >= montoT))||((banCLI!="")&&(cuenCLI>0)&&(banDES!="")&&(cuenDES>0)&&(((hora > "09:00")&&(hora < "12:00"))||((hora > "15:00")&&(hora < "20:00")))&&(banDES!=banCLI)&&(saldo >= (montoT + 100))))
    {
        traf.innerHTML=traf.innerHTML + "LA TRANSFERENCIA DE "+ montoT + " Dolares, REALIZADA EXITOSAMENTE <br>";
     }
   else
    {
     traf.innerHTML=traf.innerHTML + "NO SE PUEDE HACER LA TRANSACCION <br>";
    }
 traf.innerHTML=traf.innerHTML + "<p>GRACIAS POR SU VISITA</p> "
   console.log("operado");
 }```

Este el el codigo JS:

var banCLI, banDES, cuenCLI, cuenDES, saldo, costoTra, montoT;
var hora, cliVer, desVer;
var traf =document.getElementById("resultadoTex");//Donde se colocaran los textos de resultado



 var c=document.getElementById("efectuar");//boton que efectuara las acciones y lla mara a la funcion principal
 c.addEventListener("click", procesarTransaccion);

 function procesarTransaccion()
 {
   banCLI =document.getElementById("TextBanCli");//almacena el banco del cliente
   banCLI = banCLI.value;
   banDES =document.getElementById("TextBanDes");//almacena el banco de destino
   banDES = banDES.value;
   cuenCLI =document.getElementById("TextCuenCli");//almacena la cuenta del cliente
   cuenCLI = parseInt(cuenCLI.value);
   cuenDES =document.getElementById("TextCuenDes");//almacena la cuenta de destino
   cuenDES = parseInt(cuenDES.value);
   saldo =document.getElementById("TextSaldo");// almacena el saldo de la cuenta
   saldo = parseInt(saldo.value);
   montoT =document.getElementById("TextMontoT");//almacena el monto que se desea transferir
   montoT = parseInt(montoT.value);
   hora =document.getElementById("TextHora");//almacena la hora de la transaccion
   hora = hora.value;

   traf.innerHTML= "Resumen:<br>"
   cliVer = verificacionCuenta("Cliente",banCLI,cuenCLI);// se verifica la cuenta y banco del cliente
   desVer = verificacionCuenta("Destino",banDES,cuenDES);// se verifica la cuenta y banco de destino

   if (cliVer)
    {
        if (desVer)
         {
             if (banDES==banCLI)
              {
               costoTra = 0;
               traf.innerHTML=traf.innerHTML + "Costo de transaccion es 0 dolares <br>";
              }
            else
               {
               costoTra = 100;
               traf.innerHTML=traf.innerHTML + "Costo de transaccion es 100 dolares <br>";
                }

              if (saldo >= (montoT + costoTra))
                {
                      if (((hora > "09:00")&&(hora < "12:00"))||((hora > "15:00")&&(hora < "20:00")))
                      {
                        traf.innerHTML=traf.innerHTML + "TRANSFERENCIA DE "+ montoT + " Dolares, REALIZADA EXITOSAMENTE <br>";
                      }
                      else
                      {
                        traf.innerHTML=traf.innerHTML + "Fuera del horario de Atencion Solo se pueden hacer transferencias de 09:00 a 12:00 o 15:00 a 20:00 <br>" + " NO SE PUEDE HACER LA TRANSACCION <br>";
                      }
                }
              else
                {
                  if (isNaN(montoT)||isNaN(saldo))
                  {
                    traf.innerHTML=traf.innerHTML + "No hay datos de monto o saldo introducidos <br> "
                  } else
                  {
                      traf.innerHTML=traf.innerHTML + "Saldo Insuficiente, requiere "+(montoT + costoTra)+" Dolares <br>" + " NO SE PUEDE HACER LA TRANSACCION <br>";
                  }

                }
         }
         else
         {
           traf.innerHTML=traf.innerHTML + "Destino no Valido " + "NO SE PUEDE HACER LA TRANSACCION <br>";
         }
     }
   else
    {
     traf.innerHTML=traf.innerHTML + "Cliente no Valido " + "NO SE PUEDE HACER LA TRANSACCION <br>";
    }
 traf.innerHTML=traf.innerHTML + "<p>GRACIAS POR SU VISITA</p> "
   console.log("operado");
 }
 function verificacionCuenta(x,y,z)//funcion que realiza la verificacion de la CUENTA
 {
   if ((y!="")&&(z>0))
    {
      traf.innerHTML=traf.innerHTML + "Cuenta de "+x+" Valida <br>";
     return true;

   } else {
     traf.innerHTML=traf.innerHTML + "Cuenta de "+x+" No es valida <br>";
          return false;
   }
 }```

Tengo una duda

Con el siguiente código, que aparece en la consola; El resultado es 6 pero no entiendo por que alguien me podría explica.

No me quiero quedar con la duda
Gracias

var billetes = [ [ 1 , 2 , 3 ] ,
              [ 4 , 5 , 6 ] ,
              [ 7 , 8 , 9 ] ];
console.log(billetes[1][2])```

Se me hizo mas facil entender las compueras logicas ❤️

Último proyecto del curso 😄

var bancoCliente = "scotiabank";
var cuentaCliente = true;
var saldoCliente = 1200000;
var bancoDestino = "agricola";
var cuentaDestino = true;
var horaTransferida = 16;

var transferir = 1000000;

var coneccion = document.getElementById("texto");

if(cuentaCliente && cuentaDestino)
{
if(saldoCliente > transferir)
{
  if(horaTransferida >= 9 && horaTransferida <= 12 || horaTransferida >= 15 && horaTransferida <= 20)
  {
    if(bancoCliente == bancoDestino)
    {
    coneccion.innerHTML = "Transacción exitosa: $" + transferir;
    }
    else
    {
    transferir = transferir + 100;
    coneccion.innerHTML = "Transacción exitosa: $" + transferir;
    }
    }
    else
    {
    coneccion.innerHTML = "La transacción no fue posible; revisa las horas de servicio del banco.";
    }
  }
  else
  {
  coneccion.innerHTML = "La transacción no fue posible; no posees el monto solicitado.";
  }
  }
  else
  {
  coneccion.innerHTML = "La transacción no fue posible; revisa si las cuentas bancarias están verificas.";
  }
const DatosCliente = [
    NombreBancoCliente = "Bank_Colombian",
    dineroTransferir = 1000000,
    cuentaClient = "verificado",
    saldoCliente = 1025000
]
 const DatosDestino = [
    NombreBancoDestino = "Bank_Colombian",
    cuentaDestino = "verificado",
    horarioBank = [[mañana = 9,10,11,12],[tarde = 15,16,17,18,19,20]],
    saldoDestino = 0
 ]
const horaDeTransferencia= 11
var i = 0

if(horaDeTransferencia >= DatosDestino[2][0][0] && horaDeTransferencia <= DatosDestino[2][0][3] || horaDeTransferencia >= DatosDestino[2][1][0] && horaDeTransferencia <= DatosDestino[2][1][5])
{
    let costTransaction;

    if(DatosCliente[0] === DatosDestino[0])
        costTransaction = 0
    else
        costTransaction = 50000

    if(DatosCliente[3] >= DatosCliente[1] + costTransaction) {
    if(DatosCliente[2]  && DatosDestino[1]){
        DatosDestino[3] = DatosCliente[1]
        console.log(`Tu monto de ${DatosCliente[1]} ha sido transferido correctamente`)
    }else
        console.log(`Lo sentimos, revisa si alguna de las dos cuentas no es verificada, tu dinero se ha retornado a tu cuenta`)
        
    }else
        console.log("Solicitud rechazada, dinero insuficiente en la cuenta")

}else
    console.log(`Lo sentimos, el banco esta cerrado`)

les comparto mi aporte: Es un cajero que realiza transacciones cumpliendo con todas las validaciones y también realiza retiros, recordando el dinero disponible en la cuenta del usuario y el dinero disponible en la caja del cajero.
cajero1.JPGcajero2.JPGcajero3.JPGcajero4.JPGcajero5.JPGcajero6.JPG

var cliente1 = true;
var cliente2 = false;
var banco1 = true;
var cuenta1 = true;
var banco2 = false;
var cuenta2 = false;
var saldo = 1000000;
var hora = 15;

if (hora >= 9 && hora <= 12 || hora >= 15 && hora<= 20)
{
  if (cliente1 && cliente2)
  {
    if (banco1 == banco2)
    {
      if (saldo >= 1000000)
      console.log("Ha ingresado por valor de 1000000$");
      else
      console.log("No hay suficientes fondos");
    }
    else
    {
    if (saldo >= 1000100)
    {
      console.log("Su transacción tiene un coste adicional de 100$<br/>");
      console.log("Ha ingresado 1000000$ satisfactoriamente");
    }
    else
      console.log("No hay suficientes fondos");
    }
  }
  else
    console.log("La cuenta de destino no existe");
}
else
{
  console.log("El banco está cerrado");
}```

Esta es mi versión del código:

Interfaz Datos.png
let saldo = 1100000;
let boton = document.getElementById("btn_transferir");
boton.addEventListener("click", transferirDinero);
let btnUnico = document.getElementById("btn_unico_if");
btnUnico.addEventListener("click", transferirDineroUnicoIf);
let respuesta = document.getElementById("respuesta");
respuesta.innerHTML = "Su saldo es: " + saldo;
let costoTx = 100;

function transferirDinero() {
    let transferido = true;
    let bancoCliente = document.getElementById("b_cliente").value;
    let cuentaCliente = document.getElementById("c_cliente").value;
    let bancoDest = document.getElementById("b_dest").value;
    let cuentaDest = document.getElementById("c_dest").value;
    let hora = parseInt(document.getElementById("h_transferencia").value);
    let valorTx = parseInt(document.getElementById("valor_tx").value);

    if (!(bancoCliente == "Banco Platzi" || bancoCliente == "Banco Central")
        || !(bancoDest == "Banco Platzi" || bancoDest == "Banco Central")) {
        respuesta.innerHTML += "<br>Cliente o destino no verificados. Revise por favor";
        transferido = false;
    }

    if (bancoCliente == bancoDest) {
        if (valorTx > saldo) {
            respuesta.innerHTML += "<br>Saldo insuficiente. No se puede transferir el dinero";
            transferido = false;
        }
    } else {
        if (costoTx + valorTx > saldo) {
            respuesta.innerHTML += "<br>Saldo insuficiente. No se puede transferir el dinero";
            transferido = false;
        }
    }

    if (hora < 9 || (hora > 12 && hora < 15) || hora > 20) {
        respuesta.innerHTML += "<br>Hora no permitida para hacer transferencias";
        transferido = false;
    }

    if (transferido) {
        respuesta.innerHTML += "<br>¡Transferencia Exitosa!";
    }

    console.log(bancoCliente, cuentaCliente, bancoDest, cuentaDest, hora, valorTx);
}

function transferirDineroUnicoIf() {
    let bancoCliente = document.getElementById("b_cliente").value;
    let cuentaCliente = document.getElementById("c_cliente").value;
    let bancoDest = document.getElementById("b_dest").value;
    let cuentaDest = document.getElementById("c_dest").value;
    let hora = parseInt(document.getElementById("h_transferencia").value);
    let valorTx = parseInt(document.getElementById("valor_tx").value);

    if ((!(bancoCliente == "Banco Platzi" || bancoCliente == "Banco Central")
        || !(bancoDest == "Banco Platzi" || bancoDest == "Banco Central"))
        || (bancoCliente == bancoDest && valorTx > saldo)
        || (bancoCliente != bancoDest && costoTx + valorTx > saldo)
        || (hora < 9 || (hora > 12 && hora < 15) || hora > 20)) {
            respuesta.innerHTML += "<br>No se puede hacer la transacción";
    } else {
        respuesta.innerHTML += "<br>¡Transferencia Exitosa!";
    }

    console.log(bancoCliente, cuentaCliente, bancoDest, cuentaDest, hora, valorTx);
}

Así lo resolvi

var bancoCliente = "BBVA";
var cuentaCliente = true;
var saldoCliente = 1500000;
var bancoDestino = "BCS";
var cuentaDestino = true;
var horaTransferencia = 17;
var valorTransferencia = 1000000;
var costoTransaccion = 120000;

if((cuentaCliente && cuentaDestino) && (bancoCliente == bancoDestino) && 
(saldoCliente > valorTransferencia) && ((horaTransferencia > 8 &&
     horaTransferencia <13) || (horaTransferencia > 14 && horaTransferencia <21)))
{
    console.log("Transacción de $"+valorTransferencia+" exitosa y el costo de la transaccion es: "+0);     
} 
else if((cuentaCliente && cuentaDestino) && (bancoCliente != bancoDestino) && 
(saldoCliente > valorTransferencia) && ((horaTransferencia > 8 && 
    horaTransferencia <13) || (horaTransferencia > 14 && horaTransferencia <21)))
{
    console.log("Transacción de $"+valorTransferencia+" exitosa y el costo de la transaccion es: "+costoTransaccion);     
}
else
{
    alert("Transacción fallida");
}

class Transaccion
{
constructor(bcl, vcl, cc, vc, sc, bd, cd, st, ht)
{
this.bancoCliente = bcl;
this.verificacionCliente = vcl;
this.cuentaCliente = cc;
this.verificacionCuenta = vc;
this.saldoCliente = sc;
this.bancoDestino = bd;
this.cuentaDestino = cd;
this.saldoTransferir = st;
this.horaTransferencia = ht;
}

    imprimir()
    {
        document.write("<br> Transaccion Exitosa!!");
        document.write("<br><br> Banco Cliente: " + this.bancoCliente);
        document.write("<br> Cuenta Cliente: " + this.cuentaCliente);
        document.write("<br> Saldo Cliente: " + this.saldoCliente);
        document.write("<br> Banco destino: " + this.bancoDestino);
        document.write("<br> Cuenta Destino: " + this.cuentaDestino);
        document.write("<br> Saldo a Transferir: " + this.saldoTransferir);
        document.write("<br> Hora de Transferencia: " + this.horaTransferencia + "horas");
    }

}

var cliente = [];
cliente = new Transaccion(“BancoPlata”, true, 2894, true, 1000, “Banco13”, 3003, 900, 19);
var costoTransferencia = 100;

if( (cliente.verificacionCliente && cliente.verificacionCuenta) && ((cliente.bancoCliente == cliente.bancoDestino && cliente.saldoCliente >= cliente.saldoTransferir) ^ (cliente.bancoCliente != cliente.bancoDestino && cliente.saldoCliente >= (cliente.saldoTransferir + costoTransferencia))) && ((cliente.horaTransferencia >= 9 && cliente.horaTransferencia <= 12) || (cliente.horaTransferencia >= 15 && cliente.horaTransferencia <= 20)) )
{
cliente.imprimir();
if(cliente.bancoCliente == cliente.bancoDestino)
document.write("<br> Costo de Transferencia: 0");
else
document.write("<br> Costo de Transferencia: 100");
}

else
{
document.write(“Transaccion Fallida”);
}

Pense que una sola linea era imposible, la clave eran los parentesis!

function tarea(){
if (((bancoCliente == bancoDestino) || ((bancoCliente != bancoDestino)&&(saldoCliente>dineroaTransfer +100))) && clienteVer == true && destinoVer==true&&saldoCliente>dineroaTransfer&&((horaTransfer>=9&&horaTransfer<=12)||(horaTransfer>=15 && horaTransfer<=20))) {
console.log (“Transferencia exitosa”);
}

    else {
      console.log ("Transferencia imposible");
    }
}

El símbolo que utiliza Freddy en el minuto 19:00 es el acento circunflejo ++ ( ^ )++ 😄!

banquito.png

Así quedó:

var cliente = true;
var banco_cliente = "BancoEstudiantil";
var banco_cliente = "MCPatoBank";
//var saldo_cliente = 1000050;
var destino = true;
var banco_destino = "MCPatoBank";
var saldo_destino = 1350000;
var comision = 0;
var valor_transaccion = 1000000;
var hora = 20;

if(banco_cliente == banco_destino){
  comision;
}
else {
  comision = 100;
}

if((cliente && destino) && (saldo_cliente > (valor_transaccion + comision)) && ((hora >= 9 && hora <= 12) ^ (hora >=15 && hora <= 20))){
  document.write("La transferencia es efectiva");
}
else {
  document.write("La transferencia <strong>NO</strong> es efectiva");
}

Increíble, llore quiero seguir aprendiendo, quiero seguir practicando, quiero ser profesional y trabajar en lo que me guste. Gracias Freddy, gracias Platzi.

var banco_cliente = true;
var cuenta_cliente = true;
var banco_destino = true;
var cuenta_destino = true;
var saldo_cliente = 1000;
var transferencia = 700;
var hora = 16;

//IF's ANIDADOS

if (hora > 9 && hora < 12 || hora > 15 && hora < 20)
{
  if (cuenta_cliente && cuenta_destino)
  {
    if (transferencia < saldo_cliente)
    {
      if (banco_cliente == banco_destino)
      {
        console.log("Transaccion exitosa!");
        console.log("Costo de transaccion: $0");
        saldo_cliente -= transferencia;
      }
      else
      {
        console.log("Transaccion exitosa!");
        console.log("Costo de transaccion: $100");
        saldo_cliente = saldo_cliente - transferencia - 100;
      }
    }
    else
    {
      console.log("Lo sentimos, el monto a transferir es mayor que el saldo de la cuenta.");
    }
  }
  else
  {
    console.log("Lo sentimos, los datos son invalidos");
  }
}
else
{
  console.log("Las transferencias solo se pueden hacer en los siguientes horarios: 9:00 - 12:00 / 15:00 - 20:00");
}

//EN UN SOLO IF

if ((cuenta_cliente && cuenta_destino) && (hora >= 9 && hora <= 12 || hora >= 15 && hora <= 20) && (transferencia < saldo_cliente) && (banco_cliente == banco_destino))
{
  console.log("Transaccion exitosa!");
  console.log("Costo de transaccion: $0");
  saldo_cliente -= transferencia;
}
else if (!cuenta_cliente || !cuenta_destino)
{
  console.log("Los Datos son invalidos");
}
else if (transferencia > saldo_cliente)
{
  console.log("El monto que se quiere transferir es mayor al saldo de la cuenta.");
}
else if (banco_cliente != banco_destino)
{
  console.log("Transaccion exitosa!");
  console.log("Costo de transaccion: $100");
  saldo_cliente -= transferencia + 100;
}
else
{
  console.log("Las transferencias solo se pueden hacer en los siguientes horarios: 9:00 - 12:00 / 15:00 - 20:00");
}

En el primer codigo de Freddy solo pude hacerlo asi…

var lluvia = true;
var sombrilla = true;
var bajoTecho = true;

if (lluvia && (sombrilla ^ bajoTecho)) {
  alert("Estas haciendo lo correcto");
}
else{
  alert("No necesitas una sombrilla");
}```
var horita = new Date(); //Ponemos la hora del sistema
document.getElementById("hora").innerHTML = horita.toLocaleTimeString(); //muestro la hora de impresión del formulario.


var b = document.getElementById("boton");
var evento = b.addEventListener("click", transferir);

function transferir()
{
	
	//Captura los valores en variables
	var bancoOrigen = document.getElementById("Borigen").value;
	var bancoDestino = document.getElementById("Bdestino").value;
	var cuentaOrigen = parseInt(document.getElementById("Ctaorigen").value);
	var cuentaDestino = parseInt(document.getElementById("Ctadestino").value);
	var saldo = parseInt(document.getElementById("Saldoorigen").value);
	var monto = parseInt(document.getElementById("Monto").value);

	//Valida todos los datos ingresados
	if (cuentaOrigen == 0 || cuentaDestino == 0 || saldo == 0 || monto == 0) 
	{
		alert("Datos insuficientes para la transacción. Intente nuevamente con F5");
		return;
	}
	var horaDia = horita.getHours();


	//validación central del programa
	if ((((cuentaOrigen >= 1 && cuentaOrigen <= 5) && (cuentaDestino >= 1 && cuentaDestino <= 5)) &&
		(((bancoOrigen != bancoDestino) && (saldo>=(monto+100))) || ((bancoOrigen == bancoDestino) && (saldo >= monto)))) &&
		((horaDia >= 9 && horaDia <=12) || (horaDia >= 15 && horaDia <=20)))
		
	{
		alert("Transacción realizada satisfactoriamente. \n Se transfirieron $" + monto + " de la cuenta: \n" + cuentaOrigen + " - " + bancoOrigen + "\nA la cuenta: \n" + cuentaDestino + " - " + bancoDestino);
	}
	else
	{
		alert("Operación no permitida. Ha infringido alguna de las restricciones.");	
	}
}

Lo hice con un if pero realmente me la tuve que rebuscar demasiado, funciona hasta donde yo probé pero quizas es bastante complicado de leer o hay formas mas sencillas pero aun no las sé xd
El html
<<!DOCTYPE html>
<html lang=“en” dir=“ltr”>
<head>
<meta charset=“utf-8”>
<title>Banco</title>
</head>
<body>
<h1>Bienvenido al banco</h1>
<p>¿Cual es su banco? <br/>
<input type=“text” id=“banco_cliente” value =“asd” /> <br/>
¿Cual es el nombre de su cuenta? (Con el nombre “Ricardo” podrás probar el programa) <br/>
<input type=“text” id=“cuenta_cliente” value=“Ricardo”/> <br/>
¿Cuanto quiere transferir? <br/>
<input type=“text” id=“transferencia” value = “10000000”/> <br/>

¿A que banco quiere transferir? Si es un banco igual no tiene costo, en caso contrario son 100usd de recargo<br/>
<input type="text" id="banco_destino" value = "sad"/> <br/>
¿A que cuenta quiere transferir? (Con el destinatario "Chaco" podrás probar el programa)<br/>
(Recuerda que solo se puede entre 9 a 12 o de 15 a 20) <br/>
<input type="text" id="cuenta_destino" value="Chaco"/> <br/>
<input type="button" id="btn_Enviar" value="Enviar dinero"/> <p/>

<script src = "banco.js">

</script>

</body>
</html>



El javascript
<var cliente_prueba = “Ricardo”;
var destino_prueba = “Chaco”;
var hoy = new Date();
var hora = hoy.getHours();
console.log(cliente_prueba,destino_prueba,hora);
//pasamos el dato del usuario a variables
var banco = document.getElementById(“banco_cliente”);
var nombre = document.getElementById(“cuenta_cliente”);
var transferencia = document.getElementById(“transferencia”);
//destino
var banco_destino = document.getElementById(“banco_destino”);
var cuenta_destino = document.getElementById(“cuenta_destino”);
//boton
var btn_Enviar = document.getElementById(“btn_Enviar”);
btn_Enviar.addEventListener(“click”, comprobar_envio);

function comprobar_envio()
{
var cliente ={
banco: banco.value,
nombre: nombre.value,
saldo: 1000000
};

var destino ={
  banco: banco_destino.value,
  cuenta: cuenta_destino.value
};

function imprimir_datos()
{
  document.write("Banco: " +cliente.banco);
  document.write("<br/> Cuenta corriente de: " +cliente.nombre);
  document.write("<br/> Su saldo actual es: " + parseInt(cliente.saldo));
  document.write("<br/> Son las: " +hora +"Hs");
}

if ((cliente_prueba == nombre.value) && (destino_prueba == cuenta_destino.value) && (( hora >= 9 && hora <= 12) || (hora >= 15 && hora <= 20)))
{

  for(var i = 0; i < 1 ; i++)
  {
      for (var i = 0; i < 1 && (cliente.saldo < parseInt(transferencia.value) + 100); i++)
      {
        document.write("No tienes suficiente dinero");
      }
      for(var i = 0; i < 1 && (cliente.saldo > (parseInt(transferencia.value) + 100)); i++)
      {
        for(var i = 0; i < 1 && cliente.banco == destino.banco; i++)
        {
          cliente.saldo = cliente.saldo - parseInt(transferencia.value);
          imprimir_datos();
        }
        for(var i = 0; i < 1 && cliente.banco != destino.banco; i++)
        {
          cliente.saldo = cliente.saldo - (transferencia.value + 100);
          imprimir_datos();
        }
      }
  }
}
else
{
  document.write("No existe una cuenta relacionada<br/>");
  document.write("O revise la hora en la cual intenta hacer la transaccion<br/>");
  document.write("Le podriamos indicar cual fue su error pero somos un banco y aqui no hacemos eso, suerte<br/>");
}

}>

class Cuenta {
  constructor(banco, verificada, saldo) {
    this.banco = banco;
    this.verificada = verificada;
    this.saldo = saldo;
  }
}
// Variables de la transferencia
var horaTransf = 10, MONTO = 1000000, COSTO = 100;

var cliente = new Cuenta("SANTANDER", true, 2000000);
var destino = new Cuenta("BANCOMER", true, 0);

if((horaTransf > 8 && horaTransf < 13) || (horaTransf > 14 && horaTransf < 21)){
  if(cliente.verificada && destino.verificada){
    if((cliente.banco == destino.banco && cliente.saldo >= MONTO) || cliente.saldo >= (MONTO + COSTO)){
      document.write("Transferencia Exitosa")
    }
    else{
      document.write("Saldo insuficiente");
    }
  }
  else{
    document.write("No se pudo verificar alguna de las cuentas");
  }
}
else{
  document.write("No se puede realizar transferencias en estos momentos");
}
document.write("<br>");

// Codigo en un solo if

if(((horaTransf > 8 && horaTransf < 13) || (horaTransf > 14 && horaTransf < 21)) && (cliente.verificada && destino.verificada) && ((cliente.banco == destino.banco && cliente.saldo >= MONTO) || cliente.saldo >= (MONTO + COSTO))){
  document.write("Transferencia Exitosa")
}
else{
  document.write("Transferencia fallida")
}

Bueno, ha sido un reto importante. En mi caso simulé un login de sesión y a continuación los campos que se solicitan para hacer la transacción, con validaciones en todos ellos (no subo todos los print de pantalla porque son muchos, pero subí algunos), tal como pidió Freddy. Hice mi mejor esfuerzo, costó varios días pero me gustó el resultado.
Les comparto mi código y el que necesite algo, me avisa.

HTML:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>BANCO ARGENTINA</title>
</head>
<body>
    <h1>BANCO ARGENTINA</h1>
    <p>
        <img src="banco.png" />
    </p> 
    
    <form>
        <p> Digite el usuario: <input type="text" id= "usuario"> </p>
        <p> Digite la clave: <input type="number" id= "passUsuario" /> </p>
        <p><input type="button" value= "Aceptar" id="btnAceptar" /></p>
        
    </form>
    <hr>
         
    <p>Seleccione banco de origen:
		<select name = "bOrigen" id="bOrigen">
            <option value=""> Despliegue la lista</option>
			<option value= "1"> Banco Argentina </option>
			<option value= "2"> Banco Galicia </option>
			<option value= "3"> Banco BBVA </option>
			<option value= "4"> Banco Córdoba </option>
		</select>
    </p>
    
    <p>Número de cuenta Origen (del 1 al 5. Un valor diferente se tendrá como una cuenta inválida): 
        <input type="number" id="ctaOrigen" min="1" max="5"/> </p>
	

    <hr>
    
    <p>Seleccione banco de Destino
		<select name= "bDestino" id="bDestino">
            <option value=""> Despliegue la lista</option>
			<option value= "5"> Banco Argentina </option>
			<option value= "6"> Banco Galicia </option>
			<option value= "7"> Banco BBVA </option>
			<option value= "8"> Banco Córdoba </option>
		</select>
	</p>
	
	<p>Número de cuenta Destino (del 1 al 5. Un valor diferente se tendrá como una cuenta inválida): 
        <input type="number" id="ctaDestino" min="1" max="5"/> </p>
	
    <hr>
    
    <p id= saldo_actual></p>
	
    <p>Valor a transferir: <input type="number" id="monto"/> </p>
    
    <p>Hora actual de transferencia: <span id="hora"></span> </p>
	
    <p><input type="button"value="TRANSFERIR..." id="btnTransferir"/></p>
       
    
    <script src= "bank.js"></script>
</body>
</html>

JAVASCRIPT:

var usuarioEnBD = "lu";
var passEnBD = 123456;

var txtUsuario = document.getElementById("usuario");
var txtPass = document.getElementById("passUsuario");
var btnAceptar = document.getElementById("btnAceptar"); 
btnAceptar.addEventListener("click", login);


function login(){
    usuario = txtUsuario.value; 
    console.log(usuario);
    
    pass = parseInt(txtPass.value);
    console.log(pass);

    if(usuario == "lu" && pass == 123456 ){
        alert("Bienvenido a Banco Argentina, ya puede comenzar a utilizar nuestro servicio de transferencias");
        limpiarCampos();
        
    }
    else {
        alert("Clave o usuario inválidos. Por favor intente nuevamente");
        limpiarCampos();
    }
}

function limpiarCampos(){
    txtUsuario.value = "";
    txtPass.value = "";
}

//para obtener el valor del select banco origen
var banco_origen = document.getElementById("bOrigen"); 
var eleccion_origen = null; //no tiene tipo ni valor
banco_origen.addEventListener( "change", () => { eleccion_origen = banco_origen.options[banco_origen.options.selectedIndex].text } );

//para obtener el valor del select banco destino
var banco_destino = document.getElementById("bDestino"); 
var eleccion_destino = null; //no tiene tipo ni valor
banco_destino.addEventListener( "change", () => { eleccion_destino = banco_destino.options[banco_destino.options.selectedIndex].text } );

  
var nro_cuenta_origen = document.getElementById("ctaOrigen");  
var nro_cuenta_destino = document.getElementById("ctaDestino");

var saldo = 300000;
var mostrar_saldo = document.getElementById("saldo_actual"); //traigo la etiqueta p de mi HTML.
mostrar_saldo.innerHTML = "Su saldo actual es de $ " + saldo;

var monto_transferir = document.getElementById("monto");

var horita = new Date(); 
//console.log(horita); 
document.getElementById("hora").innerHTML = horita.toLocaleTimeString(); 

var btnTransferir = document.getElementById("btnTransferir");
    btnTransferir.addEventListener("click", validar);

var horaDia = horita.getHours();
//console.log(horaDia);

function validar(){

    //CORROBORAR SI CAPTA BIEN LOS DATOS:
    console.log("Saldo cuenta: " + saldo);   
    console.log("Banco origen: " + eleccion_origen); //banco origen seleccionado por usuario
    console.log("Banco destino: " + eleccion_destino); //banco destino seleccionado por usuario        
    console.log("Nro cuenta origen: " + nro_cuenta_origen.value);
    console.log("Nro cuenta destino: " + nro_cuenta_destino.value);
    console.log("Valor a transferir: " + monto_transferir.value);

    
    if(nro_cuenta_origen.value == '' || nro_cuenta_destino.value == '' ) 
        {
		    alert("Datos insuficientes para la transacción. Intente nuevamente con F5");
        }                                        
        
    else if (eleccion_origen == null || eleccion_origen == '' || eleccion_destino == null || eleccion_destino == '')  
        {
		    alert("Datos insuficientes para la transacción.Intente nuevamente con F5");
        
        }
    else if (monto_transferir.value == 0 || monto_transferir.value == '') 
        {
            alert("Debe especificar un monto a transferir.Intente nuevamente con F5");
            
        }  
        
        // Solo se pueden hacer transferencias de 9 a 12hs ó de 15 a 20hs.
    else if ( horaDia <= 9 && horaDia >= 12  ||  horaDia <= 15 && horaDia >= 20 ) 

           {
            alert("No estas dentro del horario permitido para hacer transferencias. Intente nuevamente con F5");
            
        }
    else 
        {
            transferir();
            
        }
    
}
      

    var costo_transaccion = 100;

function transferir(){
    
    if (monto_transferir.value <= saldo  && eleccion_destino == eleccion_origen ){ 

        
        alert("Transferencia con éxito \n Se transfirieron $ " + monto_transferir.value + " de la cuenta nro: \n" + nro_cuenta_origen.value + " - " + eleccion_origen + " \n A la cuenta nro: \n " + nro_cuenta_destino.value + " - " + eleccion_destino);
       
    }
    else if (eleccion_destino != eleccion_origen){ 

        saldo -= costo_transaccion;
        alert("Transferencia con éxito, se transifieron $ " + monto_transferir.value + " de la cuenta nº: \n" + nro_cuenta_origen.value + " - " + eleccion_origen + " \n A la cuenta nº \n" + nro_cuenta_destino.value + " - " + eleccion_destino + "\n " +  " Se le aplicó 100 USD de recargo. Ahora su saldo actual es de: " + saldo);
    }
    
    else if (monto_transferir.value > saldo){

        alert("El monto a transferir es mayor que el saldo disponible. No podemos realizar la operación");
    }

}

Captura1.PNG
Captura2.PNG
Captura3.PNG
Captura4.PNG

Acá dejo mi aporte!
Codigo HTML

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Transferencias!</title>
</head>
<body>
	<p>
		Cantidad a transferir:
		<input type="text" id="transferir">
		<input type="button" id="botoncito" value="Transferir!"><br /><br />
		Saldo cuenta cliente: 
		<input type="text" id="cliente"><br /><br />
		Saldo cuenta destino: 
		<input type="text" id="destino">
	<p>
	<script src="banco.js"></script>
</body>
</html>```

Codigo Javascript


var form_cliente=document.getElementById(“cliente”);
var form_destino=document.getElementById(“destino”);
var transferir=document.getElementById(“transferir”);
var boton=document.getElementById(“botoncito”);
var actualizar=document.getElementById(“botoncito2”);

boton.addEventListener(“click”, proceso);

var cliente=
{
verificado:true,
saldo:10000,
banco:“Banco nacional de credito”,
}

var destino=
{
verificado:true,
banco:“Banco mercantil”,
saldo:0
}
var hora=10;
var comision=(transferir.value * 0.16) + parseInt(transferir.value);

function proceso()
{
if (hora >= 9 && hora <= 12 || hora >= 15 && hora <= 20)
{
if (cliente.saldo > comision)
{
if (cliente.banco == destino.banco)
{
destino.saldo=parseInt(transferir.value)+destino.saldo;
cliente.saldo=cliente.saldo - parseInt(transferir.value);
}
else
{
destino.saldo=parseInt(transferir.value)+destino.saldo;
cliente.saldo=cliente.saldo - comision;
}
}
else
{
alert(“No hay suficiente dinero!!!”)
}
}
else
{
alert(“Horario de operaciones de 9AM a 12PM y 3PM a 8PM”)
}
form_cliente.value=cliente.saldo;
form_destino.value=destino.saldo;
}


Hola a todos esta es la versión larga del código.

var banco_cliente= "BCOP";
var banco_destino= "BMX";
var cuenta_cliente= true;
var cuenta_destino= true;
var saldo_cliente= 5000;
var monto_transferencia= 2000;
var costo_transferencia= 0;
var hora_transferencia= 16;

if (cuenta_cliente && cuenta_destino)
{
  if(banco_cliente==banco_destino)
  {
    costo_transferencia=0;
  }
  else
  {
    costo_transferencia=100;
  }

  if (saldo_cliente >= monto_transferencia + costo_transferencia)
  {
    if(hora_transferencia>=9 && hora_transferencia<=12 || hora_transferencia>=15 && hora_transferencia<=20)
    {
      console.log("Transferencia realizada");
    }
    else
    {
      console.log("intente en el horario adecuado");
    }
  }
  else
  {
    console.log("Fondos insuficientes");
  }
  
}
else {
  console.log("verifique las cuentas");
}

PYTHON

import time
def espacio():
    print('')
def verificarCuenta(cuenta):
    contar = len(str(cuenta))
    if contar == 10:
        return True
    else:
        print('⚠️ Incorrecto / Volver a ingresar')
def mostrarBancos():
    cont=1
    for i in bancos:
        print(cont,': ', i)
        cont=cont+1
saldoCliente= 750 #importante
while True:
    print('--------------\nTRANSFERENCIAS\n--------------')
    bancos =['Falabella','BanBif','Interbank','BBVA','Pichincha']
    mostrarBancos()
    espacio()
    while True:
        try:
            bC=int(input('Selecciona número de tu banco: '))
            bancoCliente = bC - 1 #importante
            print("Tu banco es: ", bancos[bancoCliente])
            break
        except:
            print('Valores Incorrectos')

    espacio()
    cuentaCliente=int(input('Número de cuenta: ')) #importante
    while verificarCuenta(cuentaCliente)!= True:
        cuentaCliente=int(input('Número de cuenta: '))
    espacio()
    mostrarBancos()
    espacio()
    bD= int(input('Selecciona el número del banco destino: ')) 
    bancoDestino= bD - 1 #importante
    cuentaDestino= int(input('Número de cuenta del destino: '))#importante
    while verificarCuenta(cuentaDestino) != True or (cuentaDestino==cuentaCliente):
        print('⚠️ Operacion Imposible de realizar')
        cuentaDestino= int(input('Número de cuenta del destino: '))
    espacio()
    montoTransac= int(input('Monto a transferir: '))
    if bancoCliente == bancoDestino:
        comision= 0
    else:
        comision= montoTransac * 0.10
    print('Comision: ',comision)
    transacTotal= montoTransac + comision
    saldoCliente= saldoCliente - transacTotal
    print('Saldo disponible: ',saldoCliente)
    espacio()
    time.sleep(3)```
Anotación 2020-08-30 033450.png
var bancoDestino = document.getElementById("bancoReceptor");
var bancoCliente  = document.getElementById("bancoEmisor");
var cuentaCliente = document.getElementById("cuentaEmisora");
var cuentaDestino = document.getElementById("cuentaDestino");
var verificacion = document.getElementById("verificarC");
var boton = document.getElementById("enviar");
var monto = document.getElementById("monto");
var aviso = document.getElementById("saldo");
var correcto = document.getElementById("correcto");
var comision = 100;
var cuenta1, cuenta2, saldoCliente, banco1, banco2;


verificacion.addEventListener("click", verificarCuentas);


function verificarCuentas()         //Verificar los numeros de cuentas ingresados comparandolos con las cuentas ya existentes
{
  validarEmisor = parseInt(cuentaCliente.value);
  validarReceptor = parseInt(cuentaDestino.value);
  class cuentasValidas
  {
    constructor(c, s)
    {
      this.codigo = c;
      this.saldo = s;
    }

    datos ()
    {
      var numero = this.codigo;
      var saldo = this.saldo;

      if (validarEmisor == numero)
      {
        cuenta1 = true;
        saldoCliente = saldo;
      }

      if (validarReceptor == numero)
      {
        cuenta2 = true;
      }
      console.log("N° de cuenta " + numero + ", saldo de cuenta $" + saldo);
    }
  }

  var cuentas = [];
  cuentas.push(new cuentasValidas(1010, 20000));
  cuentas.push(new cuentasValidas(2020, 40000));
  cuentas.push(new cuentasValidas(3030, 60000));
  cuentas.push(new cuentasValidas(4040, 80000));
  cuentas.push(new cuentasValidas(5050, 100000));

  for (x of cuentas)
  {
    x.datos();
  }

  if (cuenta1 && cuenta2)
  {
    correcto.innerHTML = "¡Cuentas verificadas correctamente! Su saldo es de $" + saldoCliente;

  }
  else
  {
    alert("N° de cuenta incorrecto");
  }

  boton.addEventListener("click", transaccion);
}


function transaccion()        // Inicia la transaccion despues de verificar las cuentas
{
  monto = parseInt(monto.value);
  banco1 = parseInt(bancoCliente.value);
  banco2 = parseInt(bancoDestino.value);

  if (cuenta1 && cuenta2)
  {
      if (banco1 == banco2)
      {
        comision = 0;
      }

      saldoCliente = saldoCliente - (monto + comision);

      if (saldoCliente >= 0)
      {
        aviso.innerHTML = "Transaccion aprobada, su saldo restante es de $" + saldoCliente;
      }
      else
      {
        aviso.innerHTML = "Saldo insuficiente";
      }
  }
  else
  {
    aviso.innerHTML = "no se pudo verificar las cuentas";
  }
}

Yo hice fue asi O_o

<
var bancoCli = "Bancolombia";
var bancoDes = "Davivienda";
var cuentaCli = "000400012";
var cuentaDes = "123456789";
var saldoCli = 11000;
var saldoDes = 0;
var horaTransf = 16;
var saldoTransf = 150;
var costoTransf = 0;

if (horaTransf >= 9 && horaTransf <= 12 || horaTransf >= 15 && horaTransf <= 20) {

if (cuentaCli == "000400012") {  //cliente existe
  if (cuentaDes == "123456789") { //destino existe

      if (saldoCli > saldoTransf) { //saldo suficiente
        document.write("<strong>Inicio transaccion...</strong><br>");
        document.write("<br><strong>De : </strong>" + bancoCli + " <br><strong>Para : </strong>" + bancoDes);
        document.write("<br><strong>Cuenta remitente : </strong>" + cuentaCli + " <br><strong>Cuenta destino : </strong>" + cuentaDes + "<br>");

            if (bancoDes == bancoCli) { //costo transaccion
                costoTransf = 0;
              document.write("<br><strong>Saldo en la cuenta : </strong>$" + saldoCli + " USD");
                saldoDes += saldoTransf;
                saldoCli+= -saldoTransf - costoTransf;

              document.write("<br><strong>Saldo transferido : </strong>$" + saldoTransf + " USD");
              document.write("<br><strong>Costo transacicon : </strong>$" + costoTransf + " USD");
              document.write("<br><strong>Nuevo saldo Cuenta : </strong>$" + saldoCli + " USD <br>");
            }else {

                costoTransf = 100;
                  if (saldoCli - costoTransf < saldoTransf) {
                    document.write("<br>El saldo no cubre el costo de transaccion<br>");
                  }else {
                    document.write("<br><strong>Saldo en la cuenta : </strong>$" + saldoCli + " USD");
                    saldoDes += saldoTransf;
                    saldoCli+= -saldoTransf - costoTransf;

                    document.write("<br><strong>Saldo transferido : </strong>$" + saldoTransf + " USD");
                    document.write("<br><strong>Costo transacicon : </strong>$"+ costoTransf + " USD");
                    document.write("<br><strong>Nuevo saldo Cuenta : </strong>$" + saldoCli + " USD <br>");
                  }
            }

          document.write("<br><strong>...Transaccion Finalizada!</strong>");
      }else {
        document.write("El saldo del cliente no es suficiente");

      }

  }
  else {
  document.write("No existe esa cuenta");
  }
}
else {
  document.write("No esta registrada esa cuenta cliente");
}
}
else {
  document.write("No es posible realizar por fuera de horario");
}

>

var banco_cliente = true;
var cuenta_cliente = true;
var saldo = 3000000;
var banco_destino = true;
var cuenta_destino = true;
var cliente = true
var montoTransferencia = 1000000
var horaTransf = 10

if (banco_destino != banco_cliente)
{
costoTrasaccion = 100;
}

if((cuenta_cliente && cuenta_destino) && (saldo > (montoTransferencia + costoTrasaccion) && ((horaTransf >= 9 || <= 12) || (horaTransf >=15 || <= 20)))
{
saldo = saldo -(montoTransferencia + costoTrasaccion);
alert(“Transferencia Lista”);
}

La expresiones para los operadores de comparacion son:

	y		= and	= &&	= *
	o		= or		= ||		= +
	no		= not	= !		= ~
o exclusiva	= xor	= ^		= (+)

Logre terminar el mío, y gracias al código de Raul Gomez pude salir de una duda que tenía en mi código. Si ven que lo puedo mejorar, agradecería sus opiniones…

FLUJO:

HTML:

<<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Transferencias entre Bancos </title>
  </head>
  <body>
        <h1> Transferencia entre bancos </h1>
        <p>
          <img src="https://4.bp.blogspot.com/-gQjHN6OJTDc/V8Ks-GjcSfI/AAAAAAAAHcs/7LjVCQ9FgNw8IsmeHgePP4YbQCq90LAlQCLcB/s1600/Transferencia_bancaria.png" />
        </p>
        <p id="resultado"> </p>
      <script src="Banco.js"></script>
  </body>
</html>

JS:

var resultado = document.getElementById("resultado");

bancos = ["Bancolombia", "Davivienda", "BBVA"];
var opcionBanco = bancos.length;
seleccionBancoCliente = Math.floor(Math.random()*opcionBanco);
seleccionBancoDestino = Math.floor(Math.random()*opcionBanco);

bancoCliente = seleccionBancoCliente;
cuentaCliente = true;
saldoCliente = Math.round(Math.random()*3000000);
bancoDestino = seleccionBancoDestino;
cuentaDestino = true;
transferencia = 1000000;
costoTransferencia = 100;

hora = Math.round(Math.random()*23);
document.write("Su hora para la transferencia es las:  <strong>" + hora, " horas</strong> <hr />");
document.write("El saldo del cliente actual es:  <strong>" + saldoCliente, ".</strong> <hr />");
document.write("El banco del cliente es:  <strong>" + bancoCliente, ".</strong> <hr />");
document.write("El banco de destino es:  <strong>" + bancoDestino, ".</strong> <hr />");

if(hora >= 9 && hora <= 12 || hora >= 15 && hora <= 20)
{
    if(cuentaCliente == true && cuentaDestino == true)
    {
        console.log("Cuenta OK");
        if(saldoCliente >= (transferencia + costoTransferencia))
        {
            console.log("Cuenta OK");
            if(bancoCliente == bancoDestino)
            {
                resultado.innerHTML = ("Transferencia realizada sin costo adicional! <hr />");   
            }
            else
            {
                resultado.innerHTML = ("El costo de su tranferencia es: <strong>" + (transferencia + costoTransferencia), "</strong> <hr />");   
            }
        }
        else
        {
            resultado.innerHTML = ("Lo sentimos! <strong>Fondos insuficientes.</strong> <hr />");   
        }
    }
    else
    {
        resultado.innerHTML = ("Cliente o Destino NO verficado! <hr />");   
    }
}
else
{
    resultado.innerHTML = ("La hora no esta dentro del horario de atención! <strong>Recuerde que el horario es de 9 a 12 y de 15 a las 20 horas.</strong> <hr />");   
}

Hola aqui les dejo un proyecto que realice. CALCULADORA DIGITAL con proteus. Saludos.
calculadora.png

Hola! Aqui dejo mi codigo

var banco_cliente="Banesco";
var cuenta_cliente=true;
var saldo_cliente=2000000;
var banco_destino="Bancolombia";
var cuenta_destino=true;
var hora= 20;
var monto= 1000000;
var transaccion;

if(banco_cliente==banco_destino)
{
transaccion=0;
}
else
{
transaccion=100;
}


if( cuenta_cliente && cuenta_destino)
{

 if( (hora >= 9 && hora <=12)  || (hora >= 15 && hora <= 20) )
 {

  if(saldo_cliente > monto+transaccion)
  {
    console.log("Lo lograste! Tu transaccion te saldra en "+ transaccion);
  }
  else
  {
    console.log("eres pobre y nadie te quiere ");
  }

}
 else
 {
  console.log("No son horas para hacer transeferencias");
 }
}
else
{
console.log("La cuenta de destino o su cuenta no existe");
}```

Y el que intente hacer de la forma mas corta posible


var banco_cliente=“Banesco”;
var cuenta_cliente=true;
var saldo_cliente=2000000;
var banco_destino=“Bancolombia”;
var cuenta_destino=true;
var hora= 10;
var monto= 1000000
var transaccion;

if(banco_cliente==banco_destino)
{
transaccion=0;
}
else
{
transaccion=100;
}

if( (cuenta_cliente && cuenta_destino) && ( (hora > 9 && hora <12) || (hora > 15 && hora < 20) ) && (saldo_cliente > monto+transaccion) )
{

console.log("Transferiste "+monto+" Tu transaccion te saldra en "+ transaccion);

}
else
{
console.log(“No puedes hacerlo algo anda mal”);
}```

como puedo ganar mas puntos?

trasnfer.PNG

Yo lo hice todo en una pagina, la pueden chequear aqui:

tranferencia.JPG

Me comentan si hay algo que deba revisar 😃

HTML

<!DOCTYPE html>
<meta charset="utf-8">
<meta lang="es">
<head>
    <title>Transferencia</title>
    <style>
    *
    {
        text-align: center;
        margin: 10px auto;
    }
body{
    background-color: rgb(122, 106, 214)
}

#trans{
    font-size: 1.3em;
    background-color:rgb(66, 177, 177) ;
    width: 50%;
}

    </style>
    
</head>
<html>
    <h1>Banco DINERON</h1>
    <i>Tu banco donde hay <b>full</b> billete</i>
<div id="trans">

<h2>Tu saldo: <span id="tuSaldo"></span></h2>

<h2>Introduzca el monto a tranferir</h2>

<input id="montoTransferencia" type="number">


<h2>Introduzca el banco a destino</h2>
    <select id="bancoTransferir">
    <option id="opcion1" value="Banco A">Banco A</option>
    <option id="opcion" value="Banco B">Banco B</option>
</select>

<h2>introduzca el destinatario</h2>
    <select id="clienteTransferir">
    <option id="cuentaA" value=1>Roberto Esponja</option>
    <option id="cuentaB" value=0>Patricio Estrella</option>
</select>


<br>
<p>Las transacciones a otros bancos tienen una comision de un 10%</p>
<br>
<input id="ejecutar" type="button" value="ejecutar">
</div>
<script src="transferencia.js"></script>

</html>

JS

 class Transferencia {
    constructor(m, bc, cc, sc, bd, cd, h){
    this.monto = m,
    this.bancoCliente = bc,
    this.cuentaCliente = cc,
    this.saldoCliente = sc;
    this.bancoDestino = bd;
    this.cuentaDestino =cd;
    this.horaTrans = h;
    }
}


var hora = 15;
/*Cambiar el valor de hora por lo siguiente y 
descomentar la linea de codigo que le sigue para que tome evalue la hora real*/

/*new Date();
hora = hora.getHours();
*/


var  cliente = {
    clienteBanco: "Banco A",
    clienteCuenta: true,
    clienteSaldo: 150,
}


document.getElementById("ejecutar").addEventListener("click", tranferir);
var tuSaldo = document.getElementById("tuSaldo");
var showSaldo = ()=>{tuSaldo.innerHTML = cliente.clienteSaldo};
showSaldo();

var montoTranferencia = parseInt(document.getElementById("montoTransferencia").value);

function tranferir(){

var target1 = document.getElementById("bancoTransferir").value;
var target2 = document.getElementById("clienteTransferir").value;
var montoTranferencia = parseInt(document.getElementById("montoTransferencia").value); var destinoCheck = 0;
var saldosCheck = false;
var aprobado = false;
var horaCheck = false;

//Evalua bancos 

if(target1 != "Banco A")
    {
    montoTranferencia+= (montoTranferencia * 10 /100);
    console.log("Monto Tranferencia", montoTranferencia);} 

//Evalua client
 if(target2 ==1 ){
   destinoCheck++;
}     

else{
 return  alert("Destinatario no aprobado");
}

//Evalua saldos 
if (cliente.clienteSaldo>= montoTranferencia)
        {
            saldosCheck = true;
            console.log("saldos", saldosCheck);
        }
else{
    return alert("Su saldo no es suficiente para completar la tranferencia");
}

//Hora check
if(hora >= 9 && hora <=12 || hora >=15 && hora <=20 ){
    horaCheck = true;
    console.log("hora:", horaCheck);
}

else{
    return alert("En este momento no es posible realizar la tranferencia \nNuestro horario de tranferencia es de 9 am - 12 pm y de 15 pm a 20 pm");
}

 //Evalua todo       
 if(destinoCheck > 0 && saldosCheck == true && horaCheck == true){
     cliente.clienteSaldo -= montoTranferencia;
     aprobado = true;
     showSaldo();
     console.log(`Transferencia por ${montoTranferencia} aprobada. Su saldo es de: ${cliente.clienteSaldo} `);
    return alert(`Transferencia por ${montoTranferencia} aprobada. Su saldo es de: ${cliente.clienteSaldo} `);
    }

    }

 

Intenté hacerlo de la manera más clara posible en un solo if:

  1. En la primera línea comprobamos que sean usuarios verificados y el dinero disponible
  2. En la segunda validamos la transacción, teniendo en cuenta si la misma tiene costo o no
  3. Por último verificamos que el horario sea adecuado y damos paso a la instrucción
if(
  client_ver && destiny_ver && client_money >= (  
  (client_bank === destiny_bank) ? 0 : 100 ) + transaction 
  && (  (time >=9 && time <= 12) || (time >=15 && time <= 20) )
  ){
    console.log("Your transaction was successful, thanks.")
   }
else console.log("We can't handle your transaction, please try later.")
}

Lo probé en el navegador y funcionó, lo único que hay que hacer es englobar todo este código dentro de una función y ejecutarla luego de definir las variables y sus respectivos valores.

*PD: el “?” en la segunda línea es un operador ternario que devuelve el valor que escribimos luego del mismo si la condición que escribimos previamente es verdad; de lo contrario, devuelve un valor en base a lo que escribamos luego del primer valor seguido de los dos puntos.

if (te_gusto_el_codigo) { daleLike() }
else if (tienes_un_codigo_mas_claro) { dejaloEnLosComentarios() }

Veo que muchos ponen códigos bien completos con funciones y todo, pero pues yo solo me apegue al reto que era hacer los filtros o validaciones anidados y luego en uno solo, los códigos que tengo son los siguientes y funcionan

Validaciones anidadas:

var bancoCliente = "Bancomer";
var cuentaCliente=12345;
var saldocliente = 1500000;
var bancoDestino = "Bancomer";
var cuentaDestino = 67890;
var horaTransferencia = 17;

if (bancoCliente == "Bancomer" && cuentaCliente == 12345)
{ console.log("Cuenta verificada");
  if(saldocliente>1000000)
  {
    console.log("Si te alcanza");
    if(bancoDestino == "Bancomer" && cuentaDestino == 67890)
    {
      console.log("La cuenta destino es correcta");
      if(horaTransferencia>9&&horaTransferencia<12 || horaTransferencia>15&&horaTransferencia<20)
      {
        console.log("La Transferencia fue realizada");
      }
      else {
        console.log("El horario no es permitido");
      }
    }
    else {
      console.log("La cuenta de destino no existe");
    }

  }
  else {
    console.log("No tienes el suficiente dinero");
  }
}
else {
  console.log("No eres de este banco");
}

Una sola validación:

var bancoCliente = "Bancomer";
var cuentaCliente=12345;
var saldocliente = 1500000;
var bancoDestino = "Bancomer";
var cuentaDestino = 67890;
var horaTransferencia = 17;

if (bancoCliente == "Bancomer" && cuentaCliente == 12345 && saldocliente>1000000 && bancoDestino == "Bancomer" && cuentaDestino == 67890 && (horaTransferencia>9&&horaTransferencia<12 || horaTransferencia>15&&horaTransferencia<20))
{
 console.log("Transferencia realizada");
}
else {
  console.log("No se puede realizar la transferencia");
}```

Hola aqui les comparto un proyecto que hice. RELOJ DIGITAL con proteus. Saludos.

relojDigital.png

tu explicación fue muy buena gracias, logre entender bien las tablas de verdad y como funcionan cuando se combinan.

Tarea:

transaccion.html

<!DOCTYPE html>
<html>
<head>
	<title>Condicionales de Transferencia</title>
</head>
<body>
	<h2>Ver Operación por  consola: (F12)</h2>
	<script src="persona.js"></script>
	<script src="motor_desicion.js"></script>
</body>
</html>

persona.js

class persona{
	constructor(n, b, s, v)
	{
		this.nombre = n;
		this.banco = b;
		this.saldo = s;
		this.verificada = v;
	}

	mostrar()
	{
		console.log("Nombre:" + this.nombre);
		console.log("Banco:" + this.banco);
		console.log("Saldo:" + this.saldo);
		console.log("Verificada:" + this.verificada + "\n\n");
	}
}

motor_decision.js

var cliente = new persona("cliente", "Venezuela", 2000000, true);
var destino = new persona("destino", "Mercantil", 500, true);
var monto_transferir = 1000000;
var hora = 15;
var costo;

console.log("Hora:" + hora);
console.log("Monto a transferir:" + monto_transferir + "\n\n");

cliente.mostrar();
destino.mostrar();

// horario disponible
if (hora >= 9 && hora <= 12 || hora >=15 && hora <=20)
{	
	// Cliente y Destinatario Verificados
	if (cliente.verificada && destino.verificada)
	{
		// Costo de transaccion
		if (cliente.banco == destino.banco) costo = 0;
		else costo = 100;
		
		// Saldo mayor al monto a transferir mas costo de operacion
		if (cliente.saldo > monto_transferir + costo)
		{
			cliente.saldo = cliente.saldo - (monto_transferir + costo);
			destino.saldo = destino.saldo + monto_transferir;
			console.log("-- Saldo Transferido --\n\n");
		}
		else console.log("-- Saldo insuficiente --\n\n");
	}
	else console.log("-- Ambas cuentas deben de estar verificadas --\n\n");
}
else console.log("-- Horario fuera de servicio --\n\n")

cliente.mostrar();
destino.mostrar();

condicional en una linea:

// Costo de transaccion
if (cliente.banco == destino.banco) costo = 0;
else costo = 100;

if ((hora >= 9 && hora <= 12 || hora >=15 && hora <=20) && (cliente.verificada && destino.verificada) && (cliente.saldo > monto_transferir + costo)) console.log("-- Saldo Transferido --\n\n");
else console.log("-- Algo salio mal --\n\n");
var bancoCliente = 1, 
    cuentaCliente = 1,
    saldoCliente = 10000101,
    bancoDestino = 0,
    cuentaDestino = 'nacion123',
    horaTransferencia = 16,
    monto = 1000000,
    costo = 100

if(bancoCliente && cuentaCliente && !bancoDestino && saldoCliente && saldoCliente > monto + costo && ((horaTransferencia > 9 && horaTransferencia < 12) || (horaTransferencia > 15 && horaTransferencia < 20))){
    console.log('funciona y realiza transferencia')
} else if(bancoCliente && cuentaCliente && bancoDestino && saldoCliente && saldoCliente > monto && ((horaTransferencia > 9 && horaTransferencia < 12) || (horaTransferencia > 15 && horaTransferencia < 20))) {
    console.log('funciona y realiza transferencia')
} else {
    console.log('no se puede realizar la operación')
}```

Quiero agradecer y reconocer la alta calidad de este curso y en especial la vocación en la enseñanza de Freddy Vega !!! muchas gracias por su simpatía y humildad que motiva en el logro de nuevos retos.
Ya he comenzado a tomar otros cursos de Platzi y me siento muy satisfecha por la metodología de sus docentes (todos buscan el aprendizaje y a la vez el mantener motivados a sus estudiantes.
Espero aprovechar al máximo este valiosísimo recurso y de seguro que desde ya, lo estoy recomendando entre mis allegados… Dios les bendiga por este excelente trabajo!!

HTML (Primera parte del reto)
html3.png

JAVASCRIPT (primera parte del reto)
1.png
2.png
JAVASCRIPT (Segunda parte del reto)
1.png
NOTA: revise algunos codigos de mis compañeros para entender del todo este tema y tome algunas partes para mejorar el mio, en esta clase aprendi mucho estuve todo el dia haciendo los retos 😃

Hola, Este es mi aporte.
CompuertasLogicas_Result_1.png
Colocamos la hora.
CompuertasLogicas_Result_2.png
Seleccionamos los bancos y colocamos la cantidad.
Adicional a eso agregue un contador de tu saldo que automáticamente resta cada transferencia.
CompuertasLogicas_Result_3.png
En caso de cambiar de banco(s) y/o monto
CompuertasLogicas_Result_4.png
Y cuando se acabe el saldo, ya no se podra realizar transferencias.
CompuertasLogicas_Result_5.png

  • HTML
    CompuertasLogicas_HTML.png

  • JS
    CompuertasLogicas_JS_1.png
    CompuertasLogicas_JS_2.png
    CompuertasLogicas_JS_3.png
    CompuertasLogicas_JS_4.png

Ordenado y legible

//VARIABLES

var banco_cliente = "mibanco";
var cuenta_cliente = true;
var saldo_cliente = 1000;

var monto = 1000;
var costo_transaccion = 100;
var hora_transferencia = 10;

var banco_destino = "mibanco";
var cuenta_destino = true;

var transferencia = false;
//

if(cuenta_cliente){
    if(cuenta_destino){

        if(banco_cliente == banco_destino){
            costo_transaccion = 0;
        }else{
            costo_transaccion = 100;
        }

        if(saldo_cliente >= (monto + costo_transaccion)){
            if((hora_transferencia >= 9 && hora_transferencia <= 12) || (hora_transferencia >= 15 && hora_transferencia <= 20)){
                transferencia = true;
            }
        }
    }
}

console.log(transferencia);

Maxima reduccion que pude lograr

if(banco_cliente == banco_destino){
    costo_transaccion = 0;
}
if(cuenta_cliente && cuenta_destino && saldo_cliente >= (monto + costo_transaccion) && (hora_transferencia >= 9 && hora_transferencia <= 12) || (hora_transferencia >= 15 && hora_transferencia <= 20)){

    transferencia = true;
}

Por acá dejo mi versión del código, lo estructuré en 2 archivos:
index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Transferencia Bancaria BanQ</title>
    <style>
        body {
            background-color: #000000dc;
            color: lightblue;
            font-size: 20px;
        }
        h1 {
            text-align: center;
            font-size: 38px;
        }
        fieldset {
            margin: 0px 100px;
            padding: 0px 50px;
        }
        div {
            display: inline-block;
        }
        #datos-cliente {
            display: none;
        }
        #error {
            text-align: justify;
            color: lightcoral;
        }
        #exito {
            text-align: center;
            color: lightgreen;
        }
    </style>
</head>
<body>
    <h1>Banco BanQ</h1>
    <fieldset>
        <legend>Transferencia Bancaria</legend><br>
        Nro. cuenta del cliente: <input type="text" id="cuenta-cliente" title="1234567890" value="1234567890">
        <button onclick="consultar()">Consultar</button><br><br>
        <div id="datos-cliente">
            Saldo cuenta del cliente: <div id="saldo-cliente"></div><br><br>
            Banco destino de la transferencia: <input list="bancos" id="banco-destino" value="Banco BanQ">
            <button onclick="limpiarBancoDestino()">Limpiar</button><br>
            <datalist id="bancos"></datalist><br>
            Cuenta destino de la transferencia: <input type="text" id="cuenta-destino" title="9876543210" value="9876543210"><br><br>
            Valor de la transferencia: $ <input type="text" id="valor-transferencia" value="10000">
            <button onclick="costo()">Costo Transferencia</button><br><br>
            <div id="bloque-costo-transferencia">
                Costo de la transferencia: <div id="costo-transferencia"></div>
                <button onclick="transferir()">Transferir</button>
            </div>
        </div>
        <h3 id="error"></h3>
        <h3 id="exito"></h3>
    </fieldset>
    <script src="script.js"></script>
</body>
</html>

script.js


var clienteVerificado = false
var bancoVerificado = false
var bancosArray = ["Banco BanQ","Banco Super","Banco BanaMama","Banco Competencia"]
var saldoDisponible = 100000
var valorCosto = 0
var error = document.getElementById("error")
var exito = document.getElementById("exito")
var saldo = document.getElementById("saldo-cliente")
var costoTransferencia = document.getElementById("costo-transferencia")
var bancos = document.getElementById("bancos")
var bloqueCostoTransferencia = document.getElementById("bloque-costo-transferencia").style
bloqueCostoTransferencia.display = "none"

function consultar() {
    let cuenta = document.getElementById("cuenta-cliente").value
    let datos = document.getElementById("datos-cliente").style
    if (cuenta == 1234567890) {
        datos.display = "block"
        saldo.innerHTML = currencyFormat(saldoDisponible)
        error.innerHTML = ""
        clienteVerificado = true
        for (const banco of bancosArray) {
            let option = document.createElement("option")
            option.value = banco
            bancos.appendChild(option)
        }
    } else {
        datos.display = "none"
        error.innerHTML = "Numero de cuenta no existe!!! Mira la sugerencia del campo Nro. cuenta del cliente ;)"
        clienteVerificado = false
    }
}

function currencyFormat(num) {
    return 'USD $ ' + num.toFixed(0).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
}

function limpiarBancoDestino() {
    document.getElementById("banco-destino").value = ""
    bloqueCostoTransferencia.display = "none"
}

function costo() {
    let bancoDestino = document.getElementById("banco-destino").value
    if (bancoDestino == bancosArray[0]) {
        valorCosto = 0
    } else {
        valorCosto = 100
    }
    costoTransferencia.innerHTML = valorCosto
    bloqueCostoTransferencia.display = "block"
}

function transferir() {
    let date = new Date()
    let hour = parseInt(date.getHours())
    let minutes = parseInt(date.getMinutes())
    let cuenta = document.getElementById("cuenta-destino").value
    let valor = document.getElementById("valor-transferencia").value
    let bancoDestino = document.getElementById("banco-destino").value
    for (const banc of bancosArray) {
        if (banc == bancoDestino && cuenta == 9876543210) {
            valor = parseInt(valor) + valorCosto
            bancoVerificado = true
            break
        } else {
            bancoVerificado = false
        }
    }
    error.innerHTML = ""
    exito.innerHTML = ""
    if (20 <= hour || hour < 9 || 12 <= hour && hour < 15) {
        error.innerHTML = "Importante!!! Recuerde que solo se pueden hacer transferencias en horario de 9 a 12 y de 15 a 20. Hora Actual: " + hour + ":" + minutes
    } else if (clienteVerificado && bancoVerificado && valor <= saldoDisponible) {
        exito.innerHTML = "Transferencia realizada exitosamente!!!"
        saldoDisponible -= valor
        saldo.innerHTML = currencyFormat(saldoDisponible)
    } else {
        error.innerHTML = "Los datos son invalidos!!! <ul><li> Revisa el banco y cuenta destino de la transferencia </li><li> Selecciona uno de los bancos que te sugiere el sistema </li><li> Mira la sugerencia del campo Cuenta destino de la transferencia ;) </li><li> Verifica que el saldo de tu cuenta es suficiente para hacer la transferencia </li></ul>"
    }
}

Y esta es la salida:
Selection_026.png
Dejo también el link del proyecto en GitHub para el que lo quiera consultar: https://github.com/shiroukamui/ProgramacionBasicaPlatzi/tree/master/transferencia

Mi ejemplo en js:

banco_cliente = "Bancomer";
cuenta_cliente = true;
saldo_cliente = 1200000;
banco_destino = "Banamex";
cuenta_destino = true;
hora = 11;
transferir = 1000000;
costo_transaccion = 100;

if((hora >=9 && hora <= 12) || (hora >= 15 && hora <= 20)){
  if(cuenta_cliente && cuenta_destino){
    if( saldo_cliente >= (transferir + costo_transaccion) ){
      if(banco_cliente == banco_destino){
          document.write("Transferencia sin costo de transacción");
      }
      else{
        document.write("Cantidad a transferir + costo de transferencia: $" + (transferir + costo_transaccion));
      }
    }
    else {
      document.write("Fondos insuficientes");
    }
  }
  else{
    document.write("Cliente o destino falso");
  }
}
else{
  document.write("Error: fuera de horario");
}

var cliente, destino;
var hora;
var banco_cliente, banco_destino;
var saldo;
var transferencia;

if(cliente && destino && 9<hora<12 || 15<hora<20 && saldo > 1M + 100*(banco_cliente !^ banco_destino))
{
transferencia =1;
}
else{transferencia = 0}

Gracias a las compuertas lógicas y tablas de verdad es posible crear circuitos integrados, hasta poder simplificar la cantidad de compuertas y poder diseñar un circuito mas pequeños que cumpla la misma función que el original todo gracias al álgebra de Boole.

Hola comunidad, no tiene nada que ver con la clase pero se me vino una duda a la mente, y tal vez alguno me pueda explicar o ayudar a entender .
Como se enlaza una tarjeta de pago a una app, gracias de antemano.

Muchas Gracias al equipo de PLATZI, aprendí mucho…

Hace un tiempo, antes de ver el curso de programación gratuito, pensé en hacer parte de las comunidades para aprender, apoyar, en fin, pero por algunos problemas problemas (estoy loco del coco…)… (en realidad es fobia social…) me es más fácil aprender (solo por gusto) de web por videos, haber llegado al final del curso, darme cuenta que tengo un amplio conocimiento y que puedo hacer cosillas aunque sea para entretenerme ha significado mucho por lo cual, agradezco al sr Freddy por todo… A los demás ojalá y deje de pegar el código, eso no aporta del todo.

2020-04-29 (1).png

Hola, adjunto las dos versiones, en ambas se puede probar cambiando las variables para validar si la transacción es posible o no.

Codigo varios if.PNG
simplificado.PNG

este video hubiera sido bueno de primero en el curso

Listo. El reto validando con un sólo IF:

<!DOCTYPE html>
<html>
	<meta charset="utf-8">
<head>
	<title>COMPUERTAS LÓGICAS</title>
</head>
<body>
	<h1>TRANSFERENCIAS BANCOVID AV.19</h1>
	<p>------------------</p>
	<p>Banco de Origen
		<select name="Borigen" id="Borigen">
			<option disabled selected>Banco de Origen</option>
			<option>BANCOVID</option>
			<option>BANCORONA</option>
			<option>BANCOLORADO</option>
			<option>BANCONÓMICO</option>
		</select>
	</p>
	
	<p>Número de cuenta Origen (del 1 al 5. Un valor diferente se tendrá como una cuenta inválida): </p>
	<input type="number" name="" id="Ctaorigen" min="1" max="5">
	
	<p>Saldo en cuenta Origen: </p>
	<input type="number" name="" id="Saldoorigen">
	
	<p>Hora actual de transferencia:
	<span id="hora"></span>
<p>------------------</p>
	<p>Banco de Destino
		<select name="Bdestino" id="Bdestino">
			<option disabled selected>Banco de Destino</option>
			<option>BANCOVID</option>
			<option>BANCORONA</option>
			<option>BANCOLORADO</option>
			<option>BANCONÓMICO</option>
		</select>
	</p>
	
	<p>Número de cuenta Destino (del 1 al 5. Un valor diferente se tendrá como una cuenta inválida): </p>
	<input type="number" name="" id="Ctadestino" min="1" max="5">

	<p>------------------</p>
	
	<p>Valor a transferir: </p>
	<input type="number" name="" id="Monto">
	<p><input type="button" value="TRANSFERIR..." id="boton"></p>
	<script src="compuertas.js"></script>
</body>
</html>```

Abajo el JS

Aquí esta mi trabajo:
último trabajo.jpg

Cuando estaba en colegio mi profesor nos enseño con un muñeco llamado PADIMUSURE:
PA-paréntesis
DI-División
MU-multiplicación
SU-suma
RE-resta

el resultado era esta cara:

( * / * )
+
------------

Estoy tan feliz de acabar el desafio y acabar el curso fue una bonita experiencia que me animo a aprender python y a aprender mas de JS. Gracias Team Plazti

var bancoCliente = "Porto";
var cuentaCliente = 12345;
var saldo = 1100;
var impuesto = 100;

var hora = Math.floor(Math.random()*(24 - 0 + 1)+ 0);
var reloj = hora;

var dinero = document.getElementById("dinero");
var destino = document.getElementById("destino");
var banco = document.getElementById("bank");
var boton = document.getElementById("ok");
boton.addEventListener("click",transferir);

console.log("Esta es la hora actual: " + reloj);

function transferir(){
if (reloj >= 9 && reloj <=12 || reloj >= 15 && reloj <= 20){
    var entregar = parseInt(dinero.value);
    var cuentaDestino = destino.value;
    var bancoDestino = banco.value;
    
    if(cuentaCliente == cuentaDestino)
    {
        var total;   
        if(saldo >= (entregar + impuesto))
        {
            if(bancoCliente == bancoDestino)
            {
                total = saldo - entregar;
                total = parseInt(total);
            }
            else
            {
                total = saldo - entregar - impuesto;
                total = parseInt(total);
            }
            console.log("Esto es lo que le queda de saldo: " + total);
        }
        else
        {
            alert("SALDO INSUFICIENTE")
        }
    }
    else
    {
        alert("La cuenta del Destinatario es incorrecta")
    }

    }
else{
    alert("El horario de atencion es de 9 a 12 y de 15 a 20. Por favor asista en esos horarios")
    }
}

La version corta usando las mismas variables de arriba

function transferir(){
    var entregar = parseInt(dinero.value);
    var cuentaDestino = destino.value;
    var bancoDestino = banco.value;
    if(bancoCliente == bancoDestino && cuentaCliente == cuentaDestino && (saldo >= (entregar + impuesto)) && (reloj >= 9 && reloj <=12 || reloj >= 15 && reloj <= 20)){
        total = saldo - entregar;
        total = parseInt(total);
        console.log("Esto es lo que le queda de saldo: " + total);
    }
    else if (cuentaCliente == cuentaDestino && (saldo >= (entregar + impuesto)) && (reloj >= 9 && reloj <=12 || reloj >= 15 && reloj <= 20)){
        total = saldo - entregar - impuesto;
        total = parseInt(total);
        console.log("Esto es lo que le queda de saldo: " + total);
    }
    else
    {
        console.log("No se que paso bro");
    }
    
}

Lo hice de la siguiente forma, algo sencillo, cuando coloco muchas condiciones en un solo if, suelo separarlas en expresiones booleanas sencillas y guardarlas en variables o constantes para poder colocarles nombres y que la condición final quede sencilla y puedas siempre revisar los componentes de cada expresión.

let banco_cliente = {
  id: 1,
  nombre_banco: "Bank of America"
};

let banco_destino = {
  id: 2,
  nombre_banco: "Commercebank"
};

let cuenta_cliente = {
  id: 1,
  nombre_cliente: "Luis Portillo",
  saldo: 1500000
};

let cuenta_destino = {
  id: 2,
  nombre_cliente: "Platzi"
};

let hora_transaccion = 12;
const cliente_verificado = banco_cliente.id == 1 && cuenta_cliente.id == 1;
const destino_verificado = banco_destino.id == 2 && cuenta_destino.id == 2;
let monto_neto = 1000000
const costo_transacción =
  monto_neto + (banco_cliente.id == banco_destino.id ? 0 : 100);
const transaccion_en_horario =
  (hora_transaccion >= 9 && hora_transaccion <= 12) ||
  (hora_transaccion >= 15 && hora_transaccion <= 20);
const saldo_suficiente = cuenta_cliente.saldo >= costo_transacción;

if (
  cliente_verificado &&
  destino_verificado &&
  saldo_suficiente &&
  transaccion_en_horario
) {
  console.log(`${cuenta_cliente.nombre_cliente} ha transferido ${monto_neto} USD a ${cuenta_destino.nombre_cliente}`)
} else {
  function mensaje_de_error(cond, message, errcode) {
    return cond ? `${message} ERR_${errcode} \n` : "";
  }
  let error_string = `${mensaje_de_error(
    cliente_verificado,
    "Cliente no verificado",
    "01"
  )} ${mensaje_de_error(
    destino_verificado,
    "Destino no verificado",
    "02"
  )} ${mensaje_de_error(
    saldo_suficiente,
    "Saldo insuficiente",
    "03"
  )} ${mensaje_de_error(transaccion_en_horario, "Horario no permitido", "04")}`;
  console.log(`Hubo un problema: \n ${error_string}`);
}

Por ejemplo, allí puedo leer: “Si cliente está verificado y el destino está verificado y el saldo es suficiente y actualmente es el horario en el que se permiten las transferencias, entonces puedo transferir”. Y siempre puedo revisar esas definiciones. Por ejemplo:

¿como evaluó si el cliente está verificado?

y lo que hago es volver a donde definí la constante, no sé si es una buena práctica, pero al menos a mi me ayuda a leer y a depurar con mayor facilidad.

Muy bueno gracias @freddier

Como vi que todos ya pusieron el reto de realizar el algoritmo con muchas lineas de código les dejo el de solo un if

var cliente = true;
var Pichincha = false;
var Pacifico = true;
var saldoCliente = 3000000;
var horaTranferencia = Math.round(Math.random()*24);
console.log(horaTranferencia);
var monto = 1000000;
var valorTransaccion;

function transferirDinero()
{
    valorTransaccion = 100;
    if([(Pichincha ^ Pacifico) && cliente && Pacifico] && (saldoCliente > monto + valorTransaccion) && horaTranferencia >= 9 && horaTranferencia <=12 || horaTranferencia >=15 && horaTranferencia <= 20)
    {
        document.write("Tu transaccion se ha realizado con exito");  
    }
    else
    {
        alert("Tu transaccion no fue realizada");
    }
}
transferirDinero();```

tengo trabajando en esto en mas de un 1 día. Espero alguien me ayude con una retroalimentación.

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>BDMX</title>
		<style type="text/css">
			body {
				background: linear-gradient(300deg, #1900ff, #73a4f0);
				font-family: helvetica;
				color: #ffffff;
			}
			strong {
				font-size: medium;
				font-family: "arial", Times, serif;
			}
		</style>
	</head>
	<body>
		<p><strong>BIENVENIDO A BDMX</strong><br /></p>

		<p0
			>ERES MIEMBRO DE <strong>BDMX</strong>?<br />
			<td>
				<input type="checkbox" id="checkBanco0" onclick="texValidarSiPuedes()" />
				Si
				<script>
					function texValidarSiPuedes() {
						// traer checkbanco
						var checkBox = document.getElementById("checkBanco0");
						// traer salida de checkBanco
						var text = document.getElementById("text");

						// If the checkbox is checked, display the output text
						if (checkBox.checked == true) {
							text.style.display = "none";
						} else {
							text.style.display = "block";
						}
					}
				</script>
			</td>
			<br /><br />
		</p0>

		<p1>
			FAVOR DE INGRESAR LA HORA EN FORMATO DE 24Hr<br />
			<input type="number" value="10" id="hORA0" /><br /><br />
		</p1>

		<p2>
			BANCO AL QUE DESEA TRANSFERIRI<br />
			<input type="text" value="BDMX" id="bANCOdESTINATARIO0" /><br /><br />
		</p2>

		<p3>
			NUMERO DE CUNETA<br />
			<input
				type="number"
				value="12345678"
				id="nUMEROcUANTA0"
				required
				minlength="4"
				maxlength="8"
				size="10"
			/>
			<br /><br />
		</p3>

		<p4>
			CUAL ES TU SALDO ACTUAL?<br />
			<input type="number" value="1200" id="sALDOaCTUAL0" /><br /><br />
		</p4>

		<p5>
			MONTO A TRANSFERIR<br />
			<input type="number" value="100" id="mONTOtRANSFERIDO0" /><br /><br />
			<p6 id="text" style="display: block">
				⚠⚠⚠ No eres parte de BDMX, no pordras transferir ⚠⚠⚠ </p6
			><br />
			<p_1><input type="button" value="TRANSFERIR" id="tRANSFERIR0" /><br /> </p_1>
		</p5>

		<p6 id="rESULTADO"></p6>

		<p7><script src="fuction_1.js"></script></p7>
	</body>
</html>

//boton para aplicar la transferencia.
var setingsLines = document.getElementById("tRANSFERIR0");
setingsLines.addEventListener("click", transferir);

var resultado = document.getElementById("rESULTADO");
function transferir() {
	var perteneceBanco = document.getElementById("checkBanco0");
	var horaActual = parseInt(document.getElementById("hORA0").value);
	var saldoActual = parseInt(document.getElementById("sALDOaCTUAL0").value);
	var montoTransferido = parseInt(document.getElementById("mONTOtRANSFERIDO0").value);
	var bancoDestinatario = document.getElementById("bANCOdESTINATARIO0").value;
	var numeroDeCunetaDestinataria = parseInt(
		document.getElementById("nUMEROcUANTA0").value
	);
	if (perteneceBanco.checked == true) {
		if (
			(horaActual >= 9 && horaActual < 12) ||
			(horaActual >= 15 && horaActual < 20)
		) {
			if (bancoDestinatario == "BDMX") {
				if (montoTransferido < saldoActual) {
					resultado.innerHTML +=
						"<br /> su transaccion a la cuanta " +
						numeroDeCunetaDestinataria +
						" fue exitosa, su saldo es de " +
						(saldoActual - montoTransferido) +
						" $.<br />";
					saldoActual -= saldoActual - montoTransferido;
					console.log(saldoActual);
				} else {
					resultado.innerHTML += "<br /> saldo induficiente. <br />";
				}
			} else {
				if (montoTransferido + 100 < saldoActual) {
					resultado.innerHTML +=
						"<br /> Su transaccion a la cuanta " +
						numeroDeCunetaDestinataria +
						" con cargo de 100$ por comision, fue exitosa, su saldo es de " +
						(saldoActual - (montoTransferido + 100)) +
						" $.<br />";
					saldoActual -= saldoActual - (montoTransferido + 100);
					console.log(saldoActual);
				}
			}
		} else {
			resultado.innerHTML += "<br />Fuera de Horario, vuelma mas tarde. <br />";
		}
	} else {
		resultado.innerHTML += "<br />Lo siento no es posible. <br />";
	}
}
//

Usando lapiz es mejor !

Untitled.png
if ( (hora >= 9 && hota < 12 || hora >=15 && hora < 20 )  && cliente && destino && ( bancCliente == bancDestino ) && (saldo > Monto) ){
	enviarDinero();
}else{
	console.log("No se puede");
}

Aqui mis codigos

<code><!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Transferencias Bancarias</title>
  </head>
  <body>

    <p>Realiza tu transferencia</p>
  
    <input type="button" name="" id="boton" value="Transferir">
    <p id="resultado"></p>

    <script type="text/javascript" src="deposito.js"></script>

  </body>
</html>








var cliente1 = "thomas";
var bancoCliente1 = "BPN";
var saldoCliente1 = 120000;
var result = document.getElementById("resultado");
var dinero = 0;

var dinero = parseInt(prompt ("dinero", ""));

console.log(dinero);

var bot = document.getElementById("boton");
bot.addEventListener("click", transferencia);


//setUp
var horaActual = 9.15;
var costoTrans = 100;

//Destino
var cliente2 = "Pedro";
var bancoCliente2 = "BPN";



function transferencia()
{
  console.log(dinero);
  if ((verificado(cliente2)) && (verificado(bancoCliente2)) &&
  (disponibilidad(saldoCliente1,dinero,bancoCliente1,bancoCliente2)) && (enorario(horaActual)))
  {
    result.innerHTML = "Transferencia confirmada";
  }
  else
  {
      result.innerHTML = "Transferencia negada";
  }

}

function verificado(c)
{
    if ((c == "Pedro") || (c == "BPN"))
    {
      return true;
    }
    else
    {
      return false;
    }
}

function enorario(h)
{
  if (((h>=9) && (h<=12)) ^ ((h>=15) && (h<=20)))
  {
    return true;
  }
  else {
    return false;
  }
}

function disponibilidad(s,d,b1,b2)
{
  if (b1 != b2)
  {
    if (s>=d+100)
    {
      return true;
    }
    else {
      return false;
    }
  }
  else
  {
    if (s>=d)
      {
        return true;
      }
    else {
       return false;
    }
    }
}

Lo are y espero no morir en el intento :"v

JS

var nom_cliente_destino = document.getElementById("nombre_cliente_destino");
var numero_ident_destino = document.getElementById("numero_identificacion_destino");
var cuenta_destino = document.getElementById("cuenta_cliente_destino");
var banco_destino = document.getElementById("banco_cliente_destino");
var monto_transferencia = document.getElementById("monto_trans_destino");
var concepto_trans = document.getElementById("concepto_trans_html");

var boton = document.getElementById("boton_html");
boton.addEventListener("click", transferencia);
var boton_ocultar = document.getElementById("ocultar_datos");
boton_ocultar.addEventListener("click", ocultar_datos);
var boton_mostrar = document.getElementById("mostrar_datos");
boton_mostrar.addEventListener("click", mostrar_datos);


class Cliente{
	constructor(nombre, cedula, n_cuenta, saldo){
		this.nombre = nombre;
		this.cedula = cedula;
		this.n_cuenta = n_cuenta;
		this.saldo = saldo;
	}
	mostrar(){
		console.log("Datos del cliente:")
		console.log("Nombre: " + this.nombre);
		console.log("Cedula: " + this.cedula);
		console.log("Cuenta: " + this.n_cuenta);
		console.log("Saldo inicial de la cuenta: " + this.saldo);
	}
}

var clientes = [];
clientes.push( new Cliente ("Emily Martinez", 123456789, "01340142050123456789", 1000) );

for (var clienteactual of clientes) {
	clienteactual.mostrar();
}

//Datos del Banco
var nom_banco = "Bank";

//Datos del cliente
var nom_cliente = "Emily Martinez";
var cliente = true;

//Datos de la cuenta
var cuenta_cliente = "01340142050123456789";
var saldo_inicial = 100000;
var saldo_actual = saldo_inicial;

//Datos de la transferencia
var comision = 100;
var hora = 10;
var destino = true;

nombre_del_cliente.innerHTML = nom_cliente;
saldo_cuenta_cliente.innerHTML = saldo_inicial + " USD";
	

function transferencia(){
	/*document.body.style.fontSize="20px";*/		
	if (cliente && (hora > 9 && hora < 12 || hora > 14 && hora < 21) && destino) {	
		monto_transferencia = parseInt(monto_transferencia.value);
		if (banco_destino.value == nom_banco) {
			if (saldo_actual >= monto_transferencia) {
				document.getElementById("div_datos_trans").style.display="inline";
				saldo_actual = saldo_actual - monto_transferencia;
				n_cliente_destino.innerHTML = nom_cliente_destino.value;
				n_ident_destino.innerHTML = numero_ident_destino.value;
				c_cliente_destino.innerHTML = cuenta_destino.value;
				b_cliente_destino.innerHTML = banco_destino.value;					
				m_trans_destino.innerHTML = monto_transferencia;
				c_trans_destino.innerHTML = concepto_trans.value;
					console.log("Tranferencia sin comision");
					console.log("Cliente destino: " + nom_cliente_destino.value);
					console.log("Cuenta destino: " + cuenta_destino.value);
					console.log("Banco destino: " + banco_destino.value);
					console.log("Monto de la transferencia es: " + monto_transferencia);
					console.log("Saldo actual es: " + saldo_actual);
			}
			else{
				console.log("Saldo Insuficiente");
				saldo_html.innerHTML = "Saldo Insuficiente";
			}			
		}
		else{
			monto_transferencia = monto_transferencia + comision;
			if (saldo_actual >= monto_transferencia) {				
				document.getElementById("div_datos_trans").style.display="inline";
				saldo_actual = saldo_actual - monto_transferencia;			
				n_cliente_destino.innerHTML = nom_cliente_destino.value;
				n_ident_destino.innerHTML = numero_ident_destino.value;
				c_cliente_destino.innerHTML = cuenta_destino.value;
				b_cliente_destino.innerHTML = banco_destino.value;					
				m_trans_destino.innerHTML = monto_transferencia;
				c_trans_destino.innerHTML = concepto_trans.value;
					console.log("Transferencia con comision");
					console.log("Cliente destino: " + nom_cliente_destino.value);
					console.log("Cuenta destino: " + cuenta_destino.value);
					console.log("Banco destino: " + banco_destino.value);
					console.log("Monto de la transferencia es: " + monto_transferencia);
					console.log("Monto actual es: " + saldo_actual);
			}
			else{
				console.log("Saldo Insuficiente");
				saldo_html.innerHTML = "Saldo Insuficiente"; 
			}			
		}	
	}
	else{
		if (!cliente) {
			cliente_verificado_hmtl.innerHTML = "Cliente no verificado";
		}
		if (hora < 9 || hora > 12 && hora < 15 || hora > 20) {
			horario_html.innerHTML = "No se puede hacer transferencias en este momento. <br> El Horario de transferencia es de: 9am - 12m / 15h - 20h";
		}
		if (!destino) {
			destino_verificado_html.innerHTML = "Destino no verificado";
		}
	}
}

function ocultar_datos(){
	document.getElementById("div_datos_trans").style.display="none";
	document.getElementById("mostrar_datos").style.display="inline";
}

function mostrar_datos(){
	document.getElementById("div_datos_trans").style.display="inline";
	document.getElementById("mostrar_datos").style.display="none";
}```

ahora, a por el examen!!!

Si ponen la velocidad del vídeo a 0.5x parece que Freddy está dando la clase después de subir del bar! jajaja Grande!!

Excelente video!!

Preguntar q carajos Jjajajajajajajaja

excelente curso Freddy!! Muy buena explicacion!

var cliente_verificado = true;
var saldo_cliente =2000000;
var banco_cliente ="popular";
var banco_destino ="bhd";
var hora_actual = 9;
var costo_banco_diferente =100;
var monto_a_transferir =1000000;
var monto_total=0;


if (cliente_verificado)
{
   if (hora_actual >=9 && hora_actual<=12 || hora_actual >=15 && hora_actual <=20)
   {
              if(banco_cliente== banco_destino)
              {
                  if(saldo_cliente >= monto_a_transferir)
                  {
                    monto_total =monto_a_transferir;
                    alert("Felicidades, su transferencia fue realizada con exito.");
                    console.log(monto_total,banco_destino);
                  }
                  else
                  {
                     alert("usted no cuenta con suficiente saldo para transferir");
                  }
              }
              else
              {
                if(saldo_cliente >= monto_a_transferir + costo_banco_diferente)
                {
                  monto_total =monto_a_transferir + costo_banco_diferente;
                  alert("Felicidades, su transferencia fue realizada con exito.");
                  console.log(monto_total,banco_destino);
                }
                else
                {
                   alert("usted no cuenta con suficiente saldo para transferir");
                }
              }
   }
   else
   {
     alert("No se puede hacer transferencias en este horario, intentelo mas tarde.");
   }
}
else
{
 alert("el cliente no pudo ser verificado");
}

var cuentas =
{
cta1 : true,
cta2 : true,
cta3 : false
}

function transferir(dinero, bancoCliente, ctaCliente, saldoCliente, bancoDestino, ctaDestino, hrTransferencia)
{
if (cuentas[ctaCliente] == true && cuentas[ctaDestino] == true)
{
var costoTransaccion = 0
if (bancoCliente !== bancoDestino)
{
costoTransaccion = 100
}
if ((saldoCliente + costoTransaccion) => dinero)
{
if (hrTransferencia >= 9 && hrTransferencia <= 12)
{
return true;
}
else if (hrTransferencia >= 15 && hrTransferencia <= 20)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}

transferir(100, “Santander”, “cta1”, 5000, “Banamex”, “cta2”, 10);


en una sola línea(en esto me ayudó mi novio :3):

var transferir = (dinero, bClt, ctaClt, saldoCliente, bDes, ctaDes, hr, ctas = { cta1 : true, cta2 : true }) => (ctas[ctaClt] && ctas[ctaDes]) && ((saldoCliente + (bClt !== bDes ? 100 : 0 )) => dinero) && (hr >= 9 && hr <= 12) || (hr >= 15 && hr <= 20)

transferir(100, “Santander”, “cta1”, 5000, “Banamex”, “cta2”, 10);
transferir(1000, “Santander”, “cta1”, 5000, “Santander”, “cta2”, 10);
transferir(1000000, “Santander”, “cta1”, 5000, “Santander”, “cta2”, 10);

var respuesta = document.getElementById(“respuesta”);

var transaccion = document.getElementById(“extraer”);
transaccion.addEventListener(“click”, transferencia);

var cuentaCliente = 1000000;
var banco = “bancolombia”;
var cuentaDestino = 1;

var tiempo = new Date();
var hora = tiempo.getHours();

function transferencia ()
{
comparacion();
var r = document.getElementById(“dinero”);
var retiro = parseInt(r.value);
if ((hora >= 8 && hora <= 12) || (hora >= 14 && hora <= 18))
{
if (cuentaCliente && cuentaDestino)
{
if (cuentaCliente >= cuentaCliente)
{
cuentaDestino = retiro;
cuentaCliente = cuentaCliente - retiro;
console.log(cuentaCliente);
console.log(cuentaDestino);
}
respuesta.innerHTML += “<hr /> Transferencia exitosa <br>”;
respuesta.innerHTML += "Su saldo actual es de: " + cuentaCliente + “<br>”;
}
}
else
{
respuesta.innerHTML += “El horario de transferencias es de 8 a 12 y de 15 a 20”;
}
}

function comparacion()
{
var n = document.getElementById(“banco”);
var nombreBanco = n.value;
if (banco != nombreBanco)
{
var valorTransaccion = 7000;
cuentaCliente = cuentaCliente - valorTransaccion;
}
}

function mueveReloj()
{
momentoActual = new Date();
hora = momentoActual.getHours();
minuto = momentoActual.getMinutes();
segundo = momentoActual.getSeconds();

horaImprimible = hora + " : " + minuto + " : " + segundo;

document.form_reloj.reloj.value = horaImprimible;
setTimeout("mueveReloj()",1000);

}

var resultado = document.getElementById("respuesta");

var bancoOrigen = "BNC";
var clienteOrigen = true;
var saldoCliente = 999999;
var montoTranf = 1000000;
var bancoDestino = "BNC";
var clienteDestino = true;
var horario = 19 + 60/60;
var cargo = 100;

var saldoBoolean = saldoCliente >= montoTranf + (bancoOrigen != bancoDestino)*cargo;
var horarioBoolean = (horario >= 9 && horario < 12) || (horario >= 15 && horario < 20);

if (saldoBoolean && clienteOrigen && clienteDestino && horarioBoolean) {
  resultado.innerHTML = "Transaccion Exitosa";
} else {
  var result = "";
  if (!saldoBoolean) { result += "No posee saldo suficiente <br />" };
  if (!clienteOrigen) { result += "Cliente origen no valido <br />"};
  if (!clienteDestino) { result += "Cliente Destino no valido <br />"};
  if (!horarioBoolean) { result += "Horario no permito <br />"};
  resultado.innerHTML = result;
};```

excellent!

¡Hola! A continuación les dejo mis códigos.

El primer con condiciones anidadas:

var hora = 10;
var banco_cliente = "Banco de Venezuela";
var cuenta_cliente = 0;
var cuenta_cliente_verificada = false;
var cantidad_transferir = 1000000;

var banco_destino = "Banco de Venezuela";
var cuenta_destino = 0;
var cuenta_destino_verificada = true;

var comision = 100;

if (hora > 9 && hora < 12 || hora > 15 && hora < 20) {
  if (cuenta_cliente_verificada && cuenta_destino_verificada) {
    if (banco_cliente == banco_destino) {
      if (cuenta_cliente >= cantidad_transferir) {
        console.log("Transferencia de " + cantidad_transferir + " se ha realizado exitosamente.");
      } else {
        console.log("No hay suficiente dinero para realizar la transferencia.");
      }
    } else {
      if (cuenta_cliente >= cantidad_transferir + comision) {
        console.log("Se ha transferido la cantidad de " + cantidad_transferir + " exitosamente y se ha cobrado una comisión de " + comision + ".");
      }
    }
  } else {
    console.log("Ambas cuentas deben estar verificadas para hacer la transacción.");
  }
} else {
  console.log("Solo puedes hacer transacciones de 9 a 12 horas y de 15 a 20 horas.")
}

El segundo donde en una sola condición se chequean todos los requerimientos:

var hora = 10;
var banco_cliente = "Banco de Venezuela";
var cuenta_cliente = 10000000;
var cuenta_cliente_verificada = true;
var cantidad_transferir = 1000000;

var banco_destino = "Banco de Venezuela";
var cuenta_destino = 0;
var cuenta_destino_verificada = true;

var comision = 100;

if ((hora > 9 && hora < 12 || hora > 15 && hora < 20) && (cuenta_cliente_verificada && cuenta_destino_verificada) && (banco_cliente == banco_destino || banco_cliente != banco_destino) && (cuenta_cliente >= cantidad_transferir + comision)) {
  console.log("Transferencia de " + cantidad_transferir + " se ha realizado exitosamente.");
} else {
  console.log("Por alguna razón no se ha podido realizar la transferencia.");
}

¡Excelente forma de explicar este tema! Suele ser bastante confuso.

No esta todo en un “If” por la razón de quienes quieran un código mas interactivo, con diferentes resultados, en un “Else” y a vista propia se ve mas organizado y limpio.

//Datos del Cliente
var cliente = {
  Banco: "BancoColombia",
  Saldo: 2500000,
  Cuenta: "1234.5678.9101.1121"
}

//Datos del Banco
var banco = {
  Destino: "BancoColombia"
}

//cuentas de usuarios registrados en el Banco
var cuentas = []
cuentas.push("1234.5678.9101.1121");

//variables declaradas
var resultado;
var saldoFinal;
var montoTransferir = 1000000;
var costoTransferencia = 0;

//Hora
var h = new Date();
var hm = h.getHours();

//Operacion para la disponibilidad de una transaccion
var saldoTotal = cliente.Saldo + costoTransferencia - montoTransferir;

//Procedimientos para llevar a cabo la transaccion
if(cliente.Cuenta == cuentas)
{
  if(saldoTotal > montoTransferir)
  {
    if((cliente.Banco == banco.Destino) && (hm >= 9 && hm <= 12 || hm >= 15 && hm <= 20))
    {
      costoTransferencia = 0;
      resultado = montoTransferir + costoTransferencia;
      saldoFinal = cliente.Saldo - resultado;
      console.log("Transaccion Exitosa por: " + resultado);
      console.log("Ahora tu saldo es de: " + saldoFinal);
    }
    else if((cliente.Banco != banco.Destino) && (hm >= 9 && hm <= 12 || hm >= 15 && hm <= 20))
    {
      costoTransferencia = 100;
      resultado = montoTransferir + costoTransferencia;
      saldoFinal = cliente.Saldo - resultado;
      console.log("Transaccion Exitosa por: " + resultado);
      console.log("Ahora tu saldo es de: " + saldoFinal);
    }
    else {
      console.log("Sistema en Fuera de Servicio");
    }
  }
  else {
    console.log("Saldo Insuficiente");
  }
}
else {
  console.log("Cuenta No Registrada");
}

Mi aporte

var bankClientAcount = "BanColombia";
var clientAcount = "0104-2568-4897-5487";
var valueClientAcount = 1500000;

/******* DESTINO *******/
var hostBank = "BanColombia";
var hostAcount = "0104-4879-8564-6562";

/******* TRANSFER ******/
var valueTranfer = 1000000;
var timeTranfer = 11;
var taxTransfer = 100;

/******* CHEKING *******/
var checkClient = true;
var checkHost = true;

if (bankClientAcount != hostBank)
{
  valueTranfer += taxTransfer;
}
if ( ((timeTranfer>=9 && timeTranfer<=12) ^ (timeTranfer>=15 && timeTranfer<=20)) && checkClient && checkHost && (valueClientAcount>=valueTranfer) )
{
  tranferFunction();
}
else
{
  console.log("TRANSFERENCIA NO PERMITIDA");
}
function tranferFunction ()
{
  console.log("TRANSFERENCIA PROCESADA");
}

Ya vi que si se puede en una sola linea jaja, aun asi lo prefiero al menos en 2, porque se ve muy raro asi todo junto.

var boton= document.getElementById("boton");
var texto= document.getElementById("cantidad");
boton.addEventListener("click", transferir)

var bancoCliente= "Santander"
var cuentaCliente= true;
var saldoCliente= 2500000;
var bancoDestino= "Santander";
var cuentaDestino= true;

var horaTransferencia= 15;
var transferirDinero;
var saldo_actual= document.getElementById("Saldo");
saldo_actual.innerHTML= "<strong>Su saldo actual es: " + saldoCliente + "</strong>";

function transferir()
{
    transferirDinero= parseInt(texto.value);
    if( (cuentaCliente && cuentaDestino) && saldoCliente >= ( (bancoCliente != bancoDestino && transferirDinero + 100) ^ (bancoCliente == bancoDestino && transferirDinero) ) && (horaTransferencia >= 9 && horaTransferencia <= 12 || horaTransferencia >= 15 && horaTransferencia <= 20) )
    {
        alert("Transferencia exitosa");
    }
}```

Si quieren aprender más sobre lógica les recomiendo un libro que se llama Introducción a la lógica por Irving M. Copi y Carl Cohen , es de lógica matemática pero todo esto se explica a profundidad, es bastante bueno y te ayuda a entender bastante de cómo funcionan nuestros computadores. Espero sea útil 😉.

Los invito a probarlo, hecho para trabajar en la consola del explorador , pueden cambiar los valores entre “true” o “false” para observar los diferentes mensajes en caso de fallar algunas de las condiciones

var bancoCliente = true, cuentaCliente = true, saldoCliente = 1000000;
var bancoDestino = true, cuentaDestino = true;
var horaDeTransferencia = 15;
var costoDeTransaccion;


function transferir(){
    if(horaDeTransferencia >=9 && horaDeTransferencia <=12 ^ horaDeTransferencia >=15 && horaDeTransferencia <=20){
        if(cuentaCliente){
            if(cuentaDestino){
                if(bancoCliente == bancoDestino){
                    costoDeTransaccion = 0;
                }
                else{
                    costoDeTransaccion = 100;
                }
                if(saldoCliente>= montoATransferir){
                    saldoCliente = saldoCliente-(montoATransferir+costoDeTransaccion);
                }else{
                    console.log("saldo insuficiente");
                }
            }
			else{
					console.log("cuenta destino no verficada");
            }
        }
		else{
				console.log("cuenta cliente no verificada");
        }
    }
	else{
			console.log("Horario de transaccion fuera del permitido \n sistema habilidado de 09:00 a 12:00 y de 15:00 a 20:00");
    }
    console.log("saldo de cuenta cliente = " + saldoCliente);
}

Agrege la opcion de poner una hora o la hora real y así probar el codigo, esta un poco largo ya que intente poner en practiva varias cosas vistas en el curso.
Espero sea de ayuda para los demás.

transac.PNG

HTML

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <link rel="stylesheet" href="style.css" />
        <title>Transferencia</title>
    </head>
    <body>
        <h1>Transferencia</h1>
        <form class='Cliente'>
            <h3>Datos Cliente</h3>
            <p>
                Valor a transferir: 
                <input type="number" placeholder="Valor a transferir" value=0 id="vTrans">
            </p>
            <select name="" id="bCliente"><!--Desplegable-->
                <option value="">Seleccione banco del Cliente</option>
                <option value="BBVA">BBVA</option>
                <option value="Bancolombia">Bancolombia</option>
                <option value="Davivienda">Davivienda</option>
                <option value="Colpatria">Colpatria</option>
            </select>
            </br>
            <input type="checkbox" id="checkCli">Confirmar cuenta
            <p id='sCliente'></p>
        </form>
        <form class='Destino'>
            <h3>Datos Destino</h3>
            <select name="" id="bDestino"><!--Desplegable-->
                <option value="">Seleccione banco de Destino</option>
                <option value="BBVA">BBVA</option>
                <option value="Bancolombia">Bancolombia</option>
                <option value="Davivienda">Davivienda</option>
                <option value="Colpatria">Colpatria</option>
            </select>
            </br>
            <input type="checkbox" id="checkDest">Confirmar cuenta
            </br>
            </br>
            <input type="button" value="Realizar Transacción" id="Transacción">
            <p id='mFinal'></p>
        </form>
        <span>
            <h4> Hora </h4>
            <form action="Hora">
                <input type="button" value="Actualizar" id="Actualizar">
                </br>
                <input type="number" placeholder="Hora" id="hFalsa">
                <input type="number" placeholder="Minutos" id="mFalsa">
                <input type="checkbox" id="checkHora">Hora falsa
            </form>
            <p id='hora'></p>
        </span>
        <script src="Clase.js"></script>
        <script src="Datos.js"></script>
        <script src="transferencia.js"></script>
    </body>
</html>

JavaScript Clase

class Usuario
{
    constructor(b,c,m,s)//IDBanco,IDcheck,IDMensaje,Saldo
    {
        this.IDbanco = document.getElementById(b);
        this.IDconfirmacion = document.getElementById(c);
        this.IDmensaje = document.getElementById(m);
        this.confir = this.IDconfirmacion.checked;
        this.saldo = s;
        this.banco;
    }
    imprimir()
    {
        this.confir = this.IDconfirmacion.checked;
        //console.log(this.confir);
    }
}

JavaScript de captura de datos

/*
Cliente:    IDBanco IdConfirmación IDSaldo    bancoCli confir
Destino:    IDBanco IDConfirmación IDMensaje  bancoDes confir

Hora:   HReal       HouF    MinF   Confirmación
        horaActual                 HFalsa 
*/

var Users = []; //0:Cliente, 1:Destino

    Users.push(new Usuario('bCliente','checkCli','sCliente',1500000));
    Users.push(new Usuario('bDestino','checkDest','mFinal',0));

//------------------Bancos------------------

//Recolecta dato seleccionado del banco
Users[0].IDbanco.addEventListener('change',ban0);
Users[1].IDbanco.addEventListener('change',ban1);

function ban0()
{
    Users[0].banco = Users[0].IDbanco.value;
}
function ban1()
{
    Users[1].banco = Users[1].IDbanco.value;
}

//-------------Confirmacion----------------   

//Confirma la seleccion del checkbox
Users[0].IDconfirmacion.addEventListener('click',con0);
Users[1].IDconfirmacion.addEventListener('click',con1);

function con0()
{
    Users[0].imprimir();
}
function con1()
{
    Users[1].imprimir();
}

///////////////BOTON DE TRANSACCIÓN/////////////

var button = document.getElementById('Transacción');

///////////////Valor a transferir/////////////////

var Cant = document.getElementById('vTrans');

////////////////////HORA///////////////////////

var HORA = {

    IDHora : document.getElementById('hora'),
    IDCheck : document.getElementById('checkHora'),
    IDHfalse : document.getElementById('hFalsa'),
    IDMfalse : document.getElementById('mFalsa'),
    IDActualizar : document.getElementById('Actualizar'),
    RealDate : new Date(),
    check : false
};

//-------------Imprime hora a usar----------------
var horas = HORA['RealDate'].getHours();
var minutos = HORA['RealDate'].getMinutes();

HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':'+minutos+' Hora real';

//-----------Actualizar Hora-----------------

HORA['IDActualizar'].addEventListener('click',Actualizar); //Boton de actualizar hora
HORA['IDCheck'].addEventListener('click',Actualizar); //Check de hora falsa

function Actualizar()
{
    HORA['check'] = HORA['IDCheck'].checked; //identifica estado del check
    if(HORA['check']) //Introduccion de hora manual(falsa)
    {
        horas = HORA['IDHfalse'].value;
        minutos = HORA['IDMfalse'].value;
        horacorrecta();
    }
    else // En caso de querer la hora real
    {
        HORA['RealDate'] = new Date();
        horas = HORA['RealDate'].getHours();
        minutos = HORA['RealDate'].getMinutes();
        if (minutos>=0 && minutos<10)
        {
            HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':0'+minutos+' Hora real';
        }
        HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':'+minutos+' Hora real';
    }
}

// Verifica si la hora falsa es correcta 
function horacorrecta()
{
    //Minutos
    if (minutos == "")
    {
        HORA['IDHora'].innerHTML ="Corrige la hora";
    }
    else if (minutos>=0)
    {
        if (minutos<60)
        {
            CorHora();
        }
        else
        {
            HORA['IDHora'].innerHTML ="Corrige los minutos";    
        }
    }
    else
    {
        HORA['IDHora'].innerHTML ="Corrige los minutos";
    }
}
function CorHora()
{
    //Horas
    if (horas == "")
    {
        HORA['IDHora'].innerHTML ="Corrige la hora";
    }
    else if (horas>=0)
    {
        if (horas<=24)
        {
            if (minutos<10)
            {
                HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':0'+minutos+' Hora falsa';
            }
            else 
            {
                HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':'+minutos+' Hora falsa';
            }
        }
        else
        {
            HORA['IDHora'].innerHTML ="Corrige la hora";    
        }
    }
    else
    {
        HORA['IDHora'].innerHTML ="Corrige la hora";
    }
}

JavaScript del proceso


/*
Variables a usar:

Users[0].banco // Banco usuario
Users[1].banco // Banco destino
Users[0].saldo // Saldo usuario
Users[1].saldo // Saldo destino
Users[0].confir // Confirmación usuario
Users[1].confir // Confirmación destino
Users[0].IDmensaje // Mensaje de saldo
Users[1].IDmensaje // Mensaje de confirmaciòn
horas // hora de transacción
minutos // minutos de transacción
*/
var proceso,comision;
var valTransaccion;


button.addEventListener('click',horaTrabajo);
function horaTrabajo()
{
    proceso = true;
    comision = 0;
    Users[0].IDmensaje.innerHTML = "Saldo disponible: $"+ Users[0].saldo;
    Users[1].IDmensaje.innerHTML = "Saldo destino: $"+Users[1].saldo+"</br>";
    valTransaccion = parseInt(Cant.value);
    //Confirmación de hora de trabajo
    if (horas<9 || horas>20 || (horas==20 && minutos != 0) || (horas==12 && minutos != 0))
    {
        Users[1].IDmensaje.innerHTML += "</br>-Hora incorrecta";        
        proceso = false;
    }
    //Confirmación de cuentas
    if (Users[0].confir==false || Users[1].confir==false)
    {
        Users[1].IDmensaje.innerHTML += "</br>-Usuarios sin confirmar";
        proceso = false;
    }
    //Selección de bancos y Comisiones
    if (Users[0].banco == undefined || Users[1].banco == undefined) 
    {   
        Users[1].IDmensaje.innerHTML += "</br>-Bancos sin definir";
        proceso = false;
    }
    else if (Users[0].banco != Users[1].banco)
    {
        comision = 100;
    }
    //Monto mayor a transalado
    if (valTransaccion > Users[0].saldo)
    {
        Users[1].IDmensaje.innerHTML += "</br>-Saldo insuficiente para transacción";
        proceso = false;
    }
    //
    if (valTransaccion == 0 || valTransaccion < 0)
    {
        Users[1].IDmensaje.innerHTML += "</br>-Valor de transferencia no definido o incorrecto";
        proceso = false;
    }   
    //
    if (proceso)
    {
        Users[0].saldo -= (valTransaccion + comision); 
        Users[1].saldo += valTransaccion; 
        Users[0].IDmensaje.innerHTML = "Valor debitado: $"+(valTransaccion+comision)+"</br>Saldo disponible: $"+ Users[0].saldo;
        Users[1].IDmensaje.innerHTML = "Valor de transacción: $"+valTransaccion+"</br>Valor de comisión: $"+comision+"</br>Saldo destino: $"+Users[1].saldo;        
    }
    else
    {
        Users[1].IDmensaje.innerHTML += "</br>No fue posible realizar la transacción";        
    }
}

Users[0].IDmensaje.innerHTML = "Saldo disponible: $"+ Users[0].saldo;
Users[1].IDmensaje.innerHTML = "Saldo destino: $"+Users[1].saldo;

Ya le agregue la funcion para determinar si el cliente es o no es cliente aprobado del banco:

var clienteAprobado =[a = true, b = false];
var clienteCheck = clienteAprobado[Math.floor( Math.random() * clienteAprobado.length ) ];``

Y esta es mi versión de un if 😄

var banco_cliente = "BanLeo";
var cuenta_cliente = true;
var transferencia = 1000000;
var costo_transaccion = 100;
var saldo_cliente = 1000500;
var banco_destino = "PlatziBank";
var cuenta_destino = true;
var hora = 16;

if ((cuenta_cliente && cuenta_destino) && (9 <= hora && hora <= 12 || 15 <= hora && hora <= 20) && (saldo_cliente > (transferencia + costo_transaccion * (banco_cliente != banco_destino))))
{
  console.log("Tu transaccion ha sido exitosa y se ha cobrado una comision de " + costo_transaccion * (banco_cliente != banco_destino));
}
else
{
  console.log("Tu transaccion no cumple una de las condiciones");
}

A seguir aprendiendo…

Aquí les dejo mi versión…

var banco_cliente = true;
var cuenta_ cliente = true;
var saldo_cliente = 1500000;
var banco_destino = true;
var cuenta_destino = true;
var hora_de_trasnferencia = 15;
var monto_a_transferir = 1000000;
var costo_de_envio = 100000;

//trasnferir 1 millón de dolares

if (cliente && banco_destino && saldo_cliente > (monto_a_transferir + costo_de_envio))
{
  alert("Se puede enviar el dinero");
}

if (banco_cliente == banco_destino)
{
  costo_de_envio = 0;
}
else
{
  costo_de_envio;
}

if((hora_de_trasnferencia > 9 && > 12) || (hora_de_trasnferencia > 15 && >20))
{
  alert("Se puede enviar el dinero");
}```

tengo esta condicional y funciona bien pero, cuando le agrego un if else sobre todo para establecer la hora me da error.

if (bancoCliente != bancoDestino)
{
  if(valorTRansferenciaTotal < saldo)
  {
    var valorTRansferenciaTotal = Math.floor(valorTRansferencia * 1.15);
    costoT = valorTRansferenciaTotal - valorTRansferencia;
    console.log(costoT);
    nuevoSaldo = saldo - valorTRansferenciaTotal;
    document.getElementById("exitosa").innerHTML = "transferencia exitosa, te costo: " + costoT + ", le enviaste " + valorTRansferenciaTotal + " a la cuenta " + cuentaDestino + ", tu nuevo saldo es: " + nuevoSaldo ;
  }
   else
  {
     document.getElementById("exitosa").innerHTML = "ERROR!! saldo insuficiente, tu saldo siguen siendo: " + saldo;
   }

}
 else
  {
     costoT = 0;
     nuevoSaldo = saldo - valorTRansferencia;
     document.getElementById("exitosa").innerHTML = "transferencia exitosa, te costo: " + costoT + ", le enviaste " + valorTRansferencia + " a la cuenta " + cuentaDestino + ", tu nuevo saldo es: " + nuevoSaldo ;

  }```
Sin título.png

Elaboración de Diagrama de Flujo:
![](Diagrama de Flujo de Tarea.jpg

Si entiendes bien las compuertas lógicas y tablas de verdad puedes realizar lo que sea. Ya sea Hardware o Software

Segundo reto:

transferunif.png
transferunif2.png

Este es el diagrama de flujo de un solo IF:
Diagrama de Flujo de Tarea 2.jpg

Así es como se ve la Web, con las entradas y resultados. Funciono de maravilla.

Resultado Web.jpg

Nice

Aquí esta el código para un solo IF:

var banCLI, banDES, cuenCLI, cuenDES, saldo, costoTra, montoT;
var hora, cliVer, desVer;
var traf =document.getElementById("resultadoTex");//Donde se colocaran los textos de resultado


 var c=document.getElementById("efectuar");//boton que efectuara las acciones y lla mara a la funcion principal
 c.addEventListener("click", procesarTransaccion);

 function procesarTransaccion()
 {
   banCLI =document.getElementById("TextBanCli");//almacena el banco del cliente
   banCLI = banCLI.value;
   banDES =document.getElementById("TextBanDes");//almacena el banco de destino
   banDES = banDES.value;
   cuenCLI =document.getElementById("TextCuenCli");//almacena la cuenta del cliente
   cuenCLI = parseInt(cuenCLI.value);
   cuenDES =document.getElementById("TextCuenDes");//almacena la cuenta de destino
   cuenDES = parseInt(cuenDES.value);
   saldo =document.getElementById("TextSaldo");// almacena el saldo de la cuenta
   saldo = parseInt(saldo.value);
   montoT =document.getElementById("TextMontoT");//almacena el monto que se desea transferir
   montoT = parseInt(montoT.value);
   hora =document.getElementById("TextHora");//almacena la hora de la transaccion
   hora = hora.value;

   traf.innerHTML= "Resumen:<br>"

   if (((banCLI!="")&&(cuenCLI>0)&&(banDES!="")&&(cuenDES>0)&&(((hora > "09:00")&&(hora < "12:00"))||((hora > "15:00")&&(hora < "20:00")))&&(banDES==banCLI)&&(saldo >= montoT))||((banCLI!="")&&(cuenCLI>0)&&(banDES!="")&&(cuenDES>0)&&(((hora > "09:00")&&(hora < "12:00"))||((hora > "15:00")&&(hora < "20:00")))&&(banDES!=banCLI)&&(saldo >= (montoT + 100))))
    {
        traf.innerHTML=traf.innerHTML + "LA TRANSFERENCIA DE "+ montoT + " Dolares, REALIZADA EXITOSAMENTE <br>";
     }
   else
    {
     traf.innerHTML=traf.innerHTML + "NO SE PUEDE HACER LA TRANSACCION <br>";
    }
 traf.innerHTML=traf.innerHTML + "<p>GRACIAS POR SU VISITA</p> "
   console.log("operado");
 }```

Este el el codigo JS:

var banCLI, banDES, cuenCLI, cuenDES, saldo, costoTra, montoT;
var hora, cliVer, desVer;
var traf =document.getElementById("resultadoTex");//Donde se colocaran los textos de resultado



 var c=document.getElementById("efectuar");//boton que efectuara las acciones y lla mara a la funcion principal
 c.addEventListener("click", procesarTransaccion);

 function procesarTransaccion()
 {
   banCLI =document.getElementById("TextBanCli");//almacena el banco del cliente
   banCLI = banCLI.value;
   banDES =document.getElementById("TextBanDes");//almacena el banco de destino
   banDES = banDES.value;
   cuenCLI =document.getElementById("TextCuenCli");//almacena la cuenta del cliente
   cuenCLI = parseInt(cuenCLI.value);
   cuenDES =document.getElementById("TextCuenDes");//almacena la cuenta de destino
   cuenDES = parseInt(cuenDES.value);
   saldo =document.getElementById("TextSaldo");// almacena el saldo de la cuenta
   saldo = parseInt(saldo.value);
   montoT =document.getElementById("TextMontoT");//almacena el monto que se desea transferir
   montoT = parseInt(montoT.value);
   hora =document.getElementById("TextHora");//almacena la hora de la transaccion
   hora = hora.value;

   traf.innerHTML= "Resumen:<br>"
   cliVer = verificacionCuenta("Cliente",banCLI,cuenCLI);// se verifica la cuenta y banco del cliente
   desVer = verificacionCuenta("Destino",banDES,cuenDES);// se verifica la cuenta y banco de destino

   if (cliVer)
    {
        if (desVer)
         {
             if (banDES==banCLI)
              {
               costoTra = 0;
               traf.innerHTML=traf.innerHTML + "Costo de transaccion es 0 dolares <br>";
              }
            else
               {
               costoTra = 100;
               traf.innerHTML=traf.innerHTML + "Costo de transaccion es 100 dolares <br>";
                }

              if (saldo >= (montoT + costoTra))
                {
                      if (((hora > "09:00")&&(hora < "12:00"))||((hora > "15:00")&&(hora < "20:00")))
                      {
                        traf.innerHTML=traf.innerHTML + "TRANSFERENCIA DE "+ montoT + " Dolares, REALIZADA EXITOSAMENTE <br>";
                      }
                      else
                      {
                        traf.innerHTML=traf.innerHTML + "Fuera del horario de Atencion Solo se pueden hacer transferencias de 09:00 a 12:00 o 15:00 a 20:00 <br>" + " NO SE PUEDE HACER LA TRANSACCION <br>";
                      }
                }
              else
                {
                  if (isNaN(montoT)||isNaN(saldo))
                  {
                    traf.innerHTML=traf.innerHTML + "No hay datos de monto o saldo introducidos <br> "
                  } else
                  {
                      traf.innerHTML=traf.innerHTML + "Saldo Insuficiente, requiere "+(montoT + costoTra)+" Dolares <br>" + " NO SE PUEDE HACER LA TRANSACCION <br>";
                  }

                }
         }
         else
         {
           traf.innerHTML=traf.innerHTML + "Destino no Valido " + "NO SE PUEDE HACER LA TRANSACCION <br>";
         }
     }
   else
    {
     traf.innerHTML=traf.innerHTML + "Cliente no Valido " + "NO SE PUEDE HACER LA TRANSACCION <br>";
    }
 traf.innerHTML=traf.innerHTML + "<p>GRACIAS POR SU VISITA</p> "
   console.log("operado");
 }
 function verificacionCuenta(x,y,z)//funcion que realiza la verificacion de la CUENTA
 {
   if ((y!="")&&(z>0))
    {
      traf.innerHTML=traf.innerHTML + "Cuenta de "+x+" Valida <br>";
     return true;

   } else {
     traf.innerHTML=traf.innerHTML + "Cuenta de "+x+" No es valida <br>";
          return false;
   }
 }```

Tengo una duda

Con el siguiente código, que aparece en la consola; El resultado es 6 pero no entiendo por que alguien me podría explica.

No me quiero quedar con la duda
Gracias

var billetes = [ [ 1 , 2 , 3 ] ,
              [ 4 , 5 , 6 ] ,
              [ 7 , 8 , 9 ] ];
console.log(billetes[1][2])```

Se me hizo mas facil entender las compueras logicas ❤️

Último proyecto del curso 😄

var bancoCliente = "scotiabank";
var cuentaCliente = true;
var saldoCliente = 1200000;
var bancoDestino = "agricola";
var cuentaDestino = true;
var horaTransferida = 16;

var transferir = 1000000;

var coneccion = document.getElementById("texto");

if(cuentaCliente && cuentaDestino)
{
if(saldoCliente > transferir)
{
  if(horaTransferida >= 9 && horaTransferida <= 12 || horaTransferida >= 15 && horaTransferida <= 20)
  {
    if(bancoCliente == bancoDestino)
    {
    coneccion.innerHTML = "Transacción exitosa: $" + transferir;
    }
    else
    {
    transferir = transferir + 100;
    coneccion.innerHTML = "Transacción exitosa: $" + transferir;
    }
    }
    else
    {
    coneccion.innerHTML = "La transacción no fue posible; revisa las horas de servicio del banco.";
    }
  }
  else
  {
  coneccion.innerHTML = "La transacción no fue posible; no posees el monto solicitado.";
  }
  }
  else
  {
  coneccion.innerHTML = "La transacción no fue posible; revisa si las cuentas bancarias están verificas.";
  }
const DatosCliente = [
    NombreBancoCliente = "Bank_Colombian",
    dineroTransferir = 1000000,
    cuentaClient = "verificado",
    saldoCliente = 1025000
]
 const DatosDestino = [
    NombreBancoDestino = "Bank_Colombian",
    cuentaDestino = "verificado",
    horarioBank = [[mañana = 9,10,11,12],[tarde = 15,16,17,18,19,20]],
    saldoDestino = 0
 ]
const horaDeTransferencia= 11
var i = 0

if(horaDeTransferencia >= DatosDestino[2][0][0] && horaDeTransferencia <= DatosDestino[2][0][3] || horaDeTransferencia >= DatosDestino[2][1][0] && horaDeTransferencia <= DatosDestino[2][1][5])
{
    let costTransaction;

    if(DatosCliente[0] === DatosDestino[0])
        costTransaction = 0
    else
        costTransaction = 50000

    if(DatosCliente[3] >= DatosCliente[1] + costTransaction) {
    if(DatosCliente[2]  && DatosDestino[1]){
        DatosDestino[3] = DatosCliente[1]
        console.log(`Tu monto de ${DatosCliente[1]} ha sido transferido correctamente`)
    }else
        console.log(`Lo sentimos, revisa si alguna de las dos cuentas no es verificada, tu dinero se ha retornado a tu cuenta`)
        
    }else
        console.log("Solicitud rechazada, dinero insuficiente en la cuenta")

}else
    console.log(`Lo sentimos, el banco esta cerrado`)

les comparto mi aporte: Es un cajero que realiza transacciones cumpliendo con todas las validaciones y también realiza retiros, recordando el dinero disponible en la cuenta del usuario y el dinero disponible en la caja del cajero.
cajero1.JPGcajero2.JPGcajero3.JPGcajero4.JPGcajero5.JPGcajero6.JPG

var cliente1 = true;
var cliente2 = false;
var banco1 = true;
var cuenta1 = true;
var banco2 = false;
var cuenta2 = false;
var saldo = 1000000;
var hora = 15;

if (hora >= 9 && hora <= 12 || hora >= 15 && hora<= 20)
{
  if (cliente1 && cliente2)
  {
    if (banco1 == banco2)
    {
      if (saldo >= 1000000)
      console.log("Ha ingresado por valor de 1000000$");
      else
      console.log("No hay suficientes fondos");
    }
    else
    {
    if (saldo >= 1000100)
    {
      console.log("Su transacción tiene un coste adicional de 100$<br/>");
      console.log("Ha ingresado 1000000$ satisfactoriamente");
    }
    else
      console.log("No hay suficientes fondos");
    }
  }
  else
    console.log("La cuenta de destino no existe");
}
else
{
  console.log("El banco está cerrado");
}```

Esta es mi versión del código:

Interfaz Datos.png
let saldo = 1100000;
let boton = document.getElementById("btn_transferir");
boton.addEventListener("click", transferirDinero);
let btnUnico = document.getElementById("btn_unico_if");
btnUnico.addEventListener("click", transferirDineroUnicoIf);
let respuesta = document.getElementById("respuesta");
respuesta.innerHTML = "Su saldo es: " + saldo;
let costoTx = 100;

function transferirDinero() {
    let transferido = true;
    let bancoCliente = document.getElementById("b_cliente").value;
    let cuentaCliente = document.getElementById("c_cliente").value;
    let bancoDest = document.getElementById("b_dest").value;
    let cuentaDest = document.getElementById("c_dest").value;
    let hora = parseInt(document.getElementById("h_transferencia").value);
    let valorTx = parseInt(document.getElementById("valor_tx").value);

    if (!(bancoCliente == "Banco Platzi" || bancoCliente == "Banco Central")
        || !(bancoDest == "Banco Platzi" || bancoDest == "Banco Central")) {
        respuesta.innerHTML += "<br>Cliente o destino no verificados. Revise por favor";
        transferido = false;
    }

    if (bancoCliente == bancoDest) {
        if (valorTx > saldo) {
            respuesta.innerHTML += "<br>Saldo insuficiente. No se puede transferir el dinero";
            transferido = false;
        }
    } else {
        if (costoTx + valorTx > saldo) {
            respuesta.innerHTML += "<br>Saldo insuficiente. No se puede transferir el dinero";
            transferido = false;
        }
    }

    if (hora < 9 || (hora > 12 && hora < 15) || hora > 20) {
        respuesta.innerHTML += "<br>Hora no permitida para hacer transferencias";
        transferido = false;
    }

    if (transferido) {
        respuesta.innerHTML += "<br>¡Transferencia Exitosa!";
    }

    console.log(bancoCliente, cuentaCliente, bancoDest, cuentaDest, hora, valorTx);
}

function transferirDineroUnicoIf() {
    let bancoCliente = document.getElementById("b_cliente").value;
    let cuentaCliente = document.getElementById("c_cliente").value;
    let bancoDest = document.getElementById("b_dest").value;
    let cuentaDest = document.getElementById("c_dest").value;
    let hora = parseInt(document.getElementById("h_transferencia").value);
    let valorTx = parseInt(document.getElementById("valor_tx").value);

    if ((!(bancoCliente == "Banco Platzi" || bancoCliente == "Banco Central")
        || !(bancoDest == "Banco Platzi" || bancoDest == "Banco Central"))
        || (bancoCliente == bancoDest && valorTx > saldo)
        || (bancoCliente != bancoDest && costoTx + valorTx > saldo)
        || (hora < 9 || (hora > 12 && hora < 15) || hora > 20)) {
            respuesta.innerHTML += "<br>No se puede hacer la transacción";
    } else {
        respuesta.innerHTML += "<br>¡Transferencia Exitosa!";
    }

    console.log(bancoCliente, cuentaCliente, bancoDest, cuentaDest, hora, valorTx);
}

Así lo resolvi

var bancoCliente = "BBVA";
var cuentaCliente = true;
var saldoCliente = 1500000;
var bancoDestino = "BCS";
var cuentaDestino = true;
var horaTransferencia = 17;
var valorTransferencia = 1000000;
var costoTransaccion = 120000;

if((cuentaCliente && cuentaDestino) && (bancoCliente == bancoDestino) && 
(saldoCliente > valorTransferencia) && ((horaTransferencia > 8 &&
     horaTransferencia <13) || (horaTransferencia > 14 && horaTransferencia <21)))
{
    console.log("Transacción de $"+valorTransferencia+" exitosa y el costo de la transaccion es: "+0);     
} 
else if((cuentaCliente && cuentaDestino) && (bancoCliente != bancoDestino) && 
(saldoCliente > valorTransferencia) && ((horaTransferencia > 8 && 
    horaTransferencia <13) || (horaTransferencia > 14 && horaTransferencia <21)))
{
    console.log("Transacción de $"+valorTransferencia+" exitosa y el costo de la transaccion es: "+costoTransaccion);     
}
else
{
    alert("Transacción fallida");
}

class Transaccion
{
constructor(bcl, vcl, cc, vc, sc, bd, cd, st, ht)
{
this.bancoCliente = bcl;
this.verificacionCliente = vcl;
this.cuentaCliente = cc;
this.verificacionCuenta = vc;
this.saldoCliente = sc;
this.bancoDestino = bd;
this.cuentaDestino = cd;
this.saldoTransferir = st;
this.horaTransferencia = ht;
}

    imprimir()
    {
        document.write("<br> Transaccion Exitosa!!");
        document.write("<br><br> Banco Cliente: " + this.bancoCliente);
        document.write("<br> Cuenta Cliente: " + this.cuentaCliente);
        document.write("<br> Saldo Cliente: " + this.saldoCliente);
        document.write("<br> Banco destino: " + this.bancoDestino);
        document.write("<br> Cuenta Destino: " + this.cuentaDestino);
        document.write("<br> Saldo a Transferir: " + this.saldoTransferir);
        document.write("<br> Hora de Transferencia: " + this.horaTransferencia + "horas");
    }

}

var cliente = [];
cliente = new Transaccion(“BancoPlata”, true, 2894, true, 1000, “Banco13”, 3003, 900, 19);
var costoTransferencia = 100;

if( (cliente.verificacionCliente && cliente.verificacionCuenta) && ((cliente.bancoCliente == cliente.bancoDestino && cliente.saldoCliente >= cliente.saldoTransferir) ^ (cliente.bancoCliente != cliente.bancoDestino && cliente.saldoCliente >= (cliente.saldoTransferir + costoTransferencia))) && ((cliente.horaTransferencia >= 9 && cliente.horaTransferencia <= 12) || (cliente.horaTransferencia >= 15 && cliente.horaTransferencia <= 20)) )
{
cliente.imprimir();
if(cliente.bancoCliente == cliente.bancoDestino)
document.write("<br> Costo de Transferencia: 0");
else
document.write("<br> Costo de Transferencia: 100");
}

else
{
document.write(“Transaccion Fallida”);
}

Pense que una sola linea era imposible, la clave eran los parentesis!

function tarea(){
if (((bancoCliente == bancoDestino) || ((bancoCliente != bancoDestino)&&(saldoCliente>dineroaTransfer +100))) && clienteVer == true && destinoVer==true&&saldoCliente>dineroaTransfer&&((horaTransfer>=9&&horaTransfer<=12)||(horaTransfer>=15 && horaTransfer<=20))) {
console.log (“Transferencia exitosa”);
}

    else {
      console.log ("Transferencia imposible");
    }
}

El símbolo que utiliza Freddy en el minuto 19:00 es el acento circunflejo ++ ( ^ )++ 😄!

banquito.png

Así quedó:

var cliente = true;
var banco_cliente = "BancoEstudiantil";
var banco_cliente = "MCPatoBank";
//var saldo_cliente = 1000050;
var destino = true;
var banco_destino = "MCPatoBank";
var saldo_destino = 1350000;
var comision = 0;
var valor_transaccion = 1000000;
var hora = 20;

if(banco_cliente == banco_destino){
  comision;
}
else {
  comision = 100;
}

if((cliente && destino) && (saldo_cliente > (valor_transaccion + comision)) && ((hora >= 9 && hora <= 12) ^ (hora >=15 && hora <= 20))){
  document.write("La transferencia es efectiva");
}
else {
  document.write("La transferencia <strong>NO</strong> es efectiva");
}

Increíble, llore quiero seguir aprendiendo, quiero seguir practicando, quiero ser profesional y trabajar en lo que me guste. Gracias Freddy, gracias Platzi.

var banco_cliente = true;
var cuenta_cliente = true;
var banco_destino = true;
var cuenta_destino = true;
var saldo_cliente = 1000;
var transferencia = 700;
var hora = 16;

//IF's ANIDADOS

if (hora > 9 && hora < 12 || hora > 15 && hora < 20)
{
  if (cuenta_cliente && cuenta_destino)
  {
    if (transferencia < saldo_cliente)
    {
      if (banco_cliente == banco_destino)
      {
        console.log("Transaccion exitosa!");
        console.log("Costo de transaccion: $0");
        saldo_cliente -= transferencia;
      }
      else
      {
        console.log("Transaccion exitosa!");
        console.log("Costo de transaccion: $100");
        saldo_cliente = saldo_cliente - transferencia - 100;
      }
    }
    else
    {
      console.log("Lo sentimos, el monto a transferir es mayor que el saldo de la cuenta.");
    }
  }
  else
  {
    console.log("Lo sentimos, los datos son invalidos");
  }
}
else
{
  console.log("Las transferencias solo se pueden hacer en los siguientes horarios: 9:00 - 12:00 / 15:00 - 20:00");
}

//EN UN SOLO IF

if ((cuenta_cliente && cuenta_destino) && (hora >= 9 && hora <= 12 || hora >= 15 && hora <= 20) && (transferencia < saldo_cliente) && (banco_cliente == banco_destino))
{
  console.log("Transaccion exitosa!");
  console.log("Costo de transaccion: $0");
  saldo_cliente -= transferencia;
}
else if (!cuenta_cliente || !cuenta_destino)
{
  console.log("Los Datos son invalidos");
}
else if (transferencia > saldo_cliente)
{
  console.log("El monto que se quiere transferir es mayor al saldo de la cuenta.");
}
else if (banco_cliente != banco_destino)
{
  console.log("Transaccion exitosa!");
  console.log("Costo de transaccion: $100");
  saldo_cliente -= transferencia + 100;
}
else
{
  console.log("Las transferencias solo se pueden hacer en los siguientes horarios: 9:00 - 12:00 / 15:00 - 20:00");
}

En el primer codigo de Freddy solo pude hacerlo asi…

var lluvia = true;
var sombrilla = true;
var bajoTecho = true;

if (lluvia && (sombrilla ^ bajoTecho)) {
  alert("Estas haciendo lo correcto");
}
else{
  alert("No necesitas una sombrilla");
}```
var horita = new Date(); //Ponemos la hora del sistema
document.getElementById("hora").innerHTML = horita.toLocaleTimeString(); //muestro la hora de impresión del formulario.


var b = document.getElementById("boton");
var evento = b.addEventListener("click", transferir);

function transferir()
{
	
	//Captura los valores en variables
	var bancoOrigen = document.getElementById("Borigen").value;
	var bancoDestino = document.getElementById("Bdestino").value;
	var cuentaOrigen = parseInt(document.getElementById("Ctaorigen").value);
	var cuentaDestino = parseInt(document.getElementById("Ctadestino").value);
	var saldo = parseInt(document.getElementById("Saldoorigen").value);
	var monto = parseInt(document.getElementById("Monto").value);

	//Valida todos los datos ingresados
	if (cuentaOrigen == 0 || cuentaDestino == 0 || saldo == 0 || monto == 0) 
	{
		alert("Datos insuficientes para la transacción. Intente nuevamente con F5");
		return;
	}
	var horaDia = horita.getHours();


	//validación central del programa
	if ((((cuentaOrigen >= 1 && cuentaOrigen <= 5) && (cuentaDestino >= 1 && cuentaDestino <= 5)) &&
		(((bancoOrigen != bancoDestino) && (saldo>=(monto+100))) || ((bancoOrigen == bancoDestino) && (saldo >= monto)))) &&
		((horaDia >= 9 && horaDia <=12) || (horaDia >= 15 && horaDia <=20)))
		
	{
		alert("Transacción realizada satisfactoriamente. \n Se transfirieron $" + monto + " de la cuenta: \n" + cuentaOrigen + " - " + bancoOrigen + "\nA la cuenta: \n" + cuentaDestino + " - " + bancoDestino);
	}
	else
	{
		alert("Operación no permitida. Ha infringido alguna de las restricciones.");	
	}
}

Lo hice con un if pero realmente me la tuve que rebuscar demasiado, funciona hasta donde yo probé pero quizas es bastante complicado de leer o hay formas mas sencillas pero aun no las sé xd
El html
<<!DOCTYPE html>
<html lang=“en” dir=“ltr”>
<head>
<meta charset=“utf-8”>
<title>Banco</title>
</head>
<body>
<h1>Bienvenido al banco</h1>
<p>¿Cual es su banco? <br/>
<input type=“text” id=“banco_cliente” value =“asd” /> <br/>
¿Cual es el nombre de su cuenta? (Con el nombre “Ricardo” podrás probar el programa) <br/>
<input type=“text” id=“cuenta_cliente” value=“Ricardo”/> <br/>
¿Cuanto quiere transferir? <br/>
<input type=“text” id=“transferencia” value = “10000000”/> <br/>

¿A que banco quiere transferir? Si es un banco igual no tiene costo, en caso contrario son 100usd de recargo<br/>
<input type="text" id="banco_destino" value = "sad"/> <br/>
¿A que cuenta quiere transferir? (Con el destinatario "Chaco" podrás probar el programa)<br/>
(Recuerda que solo se puede entre 9 a 12 o de 15 a 20) <br/>
<input type="text" id="cuenta_destino" value="Chaco"/> <br/>
<input type="button" id="btn_Enviar" value="Enviar dinero"/> <p/>

<script src = "banco.js">

</script>

</body>
</html>



El javascript
<var cliente_prueba = “Ricardo”;
var destino_prueba = “Chaco”;
var hoy = new Date();
var hora = hoy.getHours();
console.log(cliente_prueba,destino_prueba,hora);
//pasamos el dato del usuario a variables
var banco = document.getElementById(“banco_cliente”);
var nombre = document.getElementById(“cuenta_cliente”);
var transferencia = document.getElementById(“transferencia”);
//destino
var banco_destino = document.getElementById(“banco_destino”);
var cuenta_destino = document.getElementById(“cuenta_destino”);
//boton
var btn_Enviar = document.getElementById(“btn_Enviar”);
btn_Enviar.addEventListener(“click”, comprobar_envio);

function comprobar_envio()
{
var cliente ={
banco: banco.value,
nombre: nombre.value,
saldo: 1000000
};

var destino ={
  banco: banco_destino.value,
  cuenta: cuenta_destino.value
};

function imprimir_datos()
{
  document.write("Banco: " +cliente.banco);
  document.write("<br/> Cuenta corriente de: " +cliente.nombre);
  document.write("<br/> Su saldo actual es: " + parseInt(cliente.saldo));
  document.write("<br/> Son las: " +hora +"Hs");
}

if ((cliente_prueba == nombre.value) && (destino_prueba == cuenta_destino.value) && (( hora >= 9 && hora <= 12) || (hora >= 15 && hora <= 20)))
{

  for(var i = 0; i < 1 ; i++)
  {
      for (var i = 0; i < 1 && (cliente.saldo < parseInt(transferencia.value) + 100); i++)
      {
        document.write("No tienes suficiente dinero");
      }
      for(var i = 0; i < 1 && (cliente.saldo > (parseInt(transferencia.value) + 100)); i++)
      {
        for(var i = 0; i < 1 && cliente.banco == destino.banco; i++)
        {
          cliente.saldo = cliente.saldo - parseInt(transferencia.value);
          imprimir_datos();
        }
        for(var i = 0; i < 1 && cliente.banco != destino.banco; i++)
        {
          cliente.saldo = cliente.saldo - (transferencia.value + 100);
          imprimir_datos();
        }
      }
  }
}
else
{
  document.write("No existe una cuenta relacionada<br/>");
  document.write("O revise la hora en la cual intenta hacer la transaccion<br/>");
  document.write("Le podriamos indicar cual fue su error pero somos un banco y aqui no hacemos eso, suerte<br/>");
}

}>

class Cuenta {
  constructor(banco, verificada, saldo) {
    this.banco = banco;
    this.verificada = verificada;
    this.saldo = saldo;
  }
}
// Variables de la transferencia
var horaTransf = 10, MONTO = 1000000, COSTO = 100;

var cliente = new Cuenta("SANTANDER", true, 2000000);
var destino = new Cuenta("BANCOMER", true, 0);

if((horaTransf > 8 && horaTransf < 13) || (horaTransf > 14 && horaTransf < 21)){
  if(cliente.verificada && destino.verificada){
    if((cliente.banco == destino.banco && cliente.saldo >= MONTO) || cliente.saldo >= (MONTO + COSTO)){
      document.write("Transferencia Exitosa")
    }
    else{
      document.write("Saldo insuficiente");
    }
  }
  else{
    document.write("No se pudo verificar alguna de las cuentas");
  }
}
else{
  document.write("No se puede realizar transferencias en estos momentos");
}
document.write("<br>");

// Codigo en un solo if

if(((horaTransf > 8 && horaTransf < 13) || (horaTransf > 14 && horaTransf < 21)) && (cliente.verificada && destino.verificada) && ((cliente.banco == destino.banco && cliente.saldo >= MONTO) || cliente.saldo >= (MONTO + COSTO))){
  document.write("Transferencia Exitosa")
}
else{
  document.write("Transferencia fallida")
}

Bueno, ha sido un reto importante. En mi caso simulé un login de sesión y a continuación los campos que se solicitan para hacer la transacción, con validaciones en todos ellos (no subo todos los print de pantalla porque son muchos, pero subí algunos), tal como pidió Freddy. Hice mi mejor esfuerzo, costó varios días pero me gustó el resultado.
Les comparto mi código y el que necesite algo, me avisa.

HTML:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>BANCO ARGENTINA</title>
</head>
<body>
    <h1>BANCO ARGENTINA</h1>
    <p>
        <img src="banco.png" />
    </p> 
    
    <form>
        <p> Digite el usuario: <input type="text" id= "usuario"> </p>
        <p> Digite la clave: <input type="number" id= "passUsuario" /> </p>
        <p><input type="button" value= "Aceptar" id="btnAceptar" /></p>
        
    </form>
    <hr>
         
    <p>Seleccione banco de origen:
		<select name = "bOrigen" id="bOrigen">
            <option value=""> Despliegue la lista</option>
			<option value= "1"> Banco Argentina </option>
			<option value= "2"> Banco Galicia </option>
			<option value= "3"> Banco BBVA </option>
			<option value= "4"> Banco Córdoba </option>
		</select>
    </p>
    
    <p>Número de cuenta Origen (del 1 al 5. Un valor diferente se tendrá como una cuenta inválida): 
        <input type="number" id="ctaOrigen" min="1" max="5"/> </p>
	

    <hr>
    
    <p>Seleccione banco de Destino
		<select name= "bDestino" id="bDestino">
            <option value=""> Despliegue la lista</option>
			<option value= "5"> Banco Argentina </option>
			<option value= "6"> Banco Galicia </option>
			<option value= "7"> Banco BBVA </option>
			<option value= "8"> Banco Córdoba </option>
		</select>
	</p>
	
	<p>Número de cuenta Destino (del 1 al 5. Un valor diferente se tendrá como una cuenta inválida): 
        <input type="number" id="ctaDestino" min="1" max="5"/> </p>
	
    <hr>
    
    <p id= saldo_actual></p>
	
    <p>Valor a transferir: <input type="number" id="monto"/> </p>
    
    <p>Hora actual de transferencia: <span id="hora"></span> </p>
	
    <p><input type="button"value="TRANSFERIR..." id="btnTransferir"/></p>
       
    
    <script src= "bank.js"></script>
</body>
</html>

JAVASCRIPT:

var usuarioEnBD = "lu";
var passEnBD = 123456;

var txtUsuario = document.getElementById("usuario");
var txtPass = document.getElementById("passUsuario");
var btnAceptar = document.getElementById("btnAceptar"); 
btnAceptar.addEventListener("click", login);


function login(){
    usuario = txtUsuario.value; 
    console.log(usuario);
    
    pass = parseInt(txtPass.value);
    console.log(pass);

    if(usuario == "lu" && pass == 123456 ){
        alert("Bienvenido a Banco Argentina, ya puede comenzar a utilizar nuestro servicio de transferencias");
        limpiarCampos();
        
    }
    else {
        alert("Clave o usuario inválidos. Por favor intente nuevamente");
        limpiarCampos();
    }
}

function limpiarCampos(){
    txtUsuario.value = "";
    txtPass.value = "";
}

//para obtener el valor del select banco origen
var banco_origen = document.getElementById("bOrigen"); 
var eleccion_origen = null; //no tiene tipo ni valor
banco_origen.addEventListener( "change", () => { eleccion_origen = banco_origen.options[banco_origen.options.selectedIndex].text } );

//para obtener el valor del select banco destino
var banco_destino = document.getElementById("bDestino"); 
var eleccion_destino = null; //no tiene tipo ni valor
banco_destino.addEventListener( "change", () => { eleccion_destino = banco_destino.options[banco_destino.options.selectedIndex].text } );

  
var nro_cuenta_origen = document.getElementById("ctaOrigen");  
var nro_cuenta_destino = document.getElementById("ctaDestino");

var saldo = 300000;
var mostrar_saldo = document.getElementById("saldo_actual"); //traigo la etiqueta p de mi HTML.
mostrar_saldo.innerHTML = "Su saldo actual es de $ " + saldo;

var monto_transferir = document.getElementById("monto");

var horita = new Date(); 
//console.log(horita); 
document.getElementById("hora").innerHTML = horita.toLocaleTimeString(); 

var btnTransferir = document.getElementById("btnTransferir");
    btnTransferir.addEventListener("click", validar);

var horaDia = horita.getHours();
//console.log(horaDia);

function validar(){

    //CORROBORAR SI CAPTA BIEN LOS DATOS:
    console.log("Saldo cuenta: " + saldo);   
    console.log("Banco origen: " + eleccion_origen); //banco origen seleccionado por usuario
    console.log("Banco destino: " + eleccion_destino); //banco destino seleccionado por usuario        
    console.log("Nro cuenta origen: " + nro_cuenta_origen.value);
    console.log("Nro cuenta destino: " + nro_cuenta_destino.value);
    console.log("Valor a transferir: " + monto_transferir.value);

    
    if(nro_cuenta_origen.value == '' || nro_cuenta_destino.value == '' ) 
        {
		    alert("Datos insuficientes para la transacción. Intente nuevamente con F5");
        }                                        
        
    else if (eleccion_origen == null || eleccion_origen == '' || eleccion_destino == null || eleccion_destino == '')  
        {
		    alert("Datos insuficientes para la transacción.Intente nuevamente con F5");
        
        }
    else if (monto_transferir.value == 0 || monto_transferir.value == '') 
        {
            alert("Debe especificar un monto a transferir.Intente nuevamente con F5");
            
        }  
        
        // Solo se pueden hacer transferencias de 9 a 12hs ó de 15 a 20hs.
    else if ( horaDia <= 9 && horaDia >= 12  ||  horaDia <= 15 && horaDia >= 20 ) 

           {
            alert("No estas dentro del horario permitido para hacer transferencias. Intente nuevamente con F5");
            
        }
    else 
        {
            transferir();
            
        }
    
}
      

    var costo_transaccion = 100;

function transferir(){
    
    if (monto_transferir.value <= saldo  && eleccion_destino == eleccion_origen ){ 

        
        alert("Transferencia con éxito \n Se transfirieron $ " + monto_transferir.value + " de la cuenta nro: \n" + nro_cuenta_origen.value + " - " + eleccion_origen + " \n A la cuenta nro: \n " + nro_cuenta_destino.value + " - " + eleccion_destino);
       
    }
    else if (eleccion_destino != eleccion_origen){ 

        saldo -= costo_transaccion;
        alert("Transferencia con éxito, se transifieron $ " + monto_transferir.value + " de la cuenta nº: \n" + nro_cuenta_origen.value + " - " + eleccion_origen + " \n A la cuenta nº \n" + nro_cuenta_destino.value + " - " + eleccion_destino + "\n " +  " Se le aplicó 100 USD de recargo. Ahora su saldo actual es de: " + saldo);
    }
    
    else if (monto_transferir.value > saldo){

        alert("El monto a transferir es mayor que el saldo disponible. No podemos realizar la operación");
    }

}

Captura1.PNG
Captura2.PNG
Captura3.PNG
Captura4.PNG

Acá dejo mi aporte!
Codigo HTML

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Transferencias!</title>
</head>
<body>
	<p>
		Cantidad a transferir:
		<input type="text" id="transferir">
		<input type="button" id="botoncito" value="Transferir!"><br /><br />
		Saldo cuenta cliente: 
		<input type="text" id="cliente"><br /><br />
		Saldo cuenta destino: 
		<input type="text" id="destino">
	<p>
	<script src="banco.js"></script>
</body>
</html>```

Codigo Javascript


var form_cliente=document.getElementById(“cliente”);
var form_destino=document.getElementById(“destino”);
var transferir=document.getElementById(“transferir”);
var boton=document.getElementById(“botoncito”);
var actualizar=document.getElementById(“botoncito2”);

boton.addEventListener(“click”, proceso);

var cliente=
{
verificado:true,
saldo:10000,
banco:“Banco nacional de credito”,
}

var destino=
{
verificado:true,
banco:“Banco mercantil”,
saldo:0
}
var hora=10;
var comision=(transferir.value * 0.16) + parseInt(transferir.value);

function proceso()
{
if (hora >= 9 && hora <= 12 || hora >= 15 && hora <= 20)
{
if (cliente.saldo > comision)
{
if (cliente.banco == destino.banco)
{
destino.saldo=parseInt(transferir.value)+destino.saldo;
cliente.saldo=cliente.saldo - parseInt(transferir.value);
}
else
{
destino.saldo=parseInt(transferir.value)+destino.saldo;
cliente.saldo=cliente.saldo - comision;
}
}
else
{
alert(“No hay suficiente dinero!!!”)
}
}
else
{
alert(“Horario de operaciones de 9AM a 12PM y 3PM a 8PM”)
}
form_cliente.value=cliente.saldo;
form_destino.value=destino.saldo;
}


Hola a todos esta es la versión larga del código.

var banco_cliente= "BCOP";
var banco_destino= "BMX";
var cuenta_cliente= true;
var cuenta_destino= true;
var saldo_cliente= 5000;
var monto_transferencia= 2000;
var costo_transferencia= 0;
var hora_transferencia= 16;

if (cuenta_cliente && cuenta_destino)
{
  if(banco_cliente==banco_destino)
  {
    costo_transferencia=0;
  }
  else
  {
    costo_transferencia=100;
  }

  if (saldo_cliente >= monto_transferencia + costo_transferencia)
  {
    if(hora_transferencia>=9 && hora_transferencia<=12 || hora_transferencia>=15 && hora_transferencia<=20)
    {
      console.log("Transferencia realizada");
    }
    else
    {
      console.log("intente en el horario adecuado");
    }
  }
  else
  {
    console.log("Fondos insuficientes");
  }
  
}
else {
  console.log("verifique las cuentas");
}

PYTHON

import time
def espacio():
    print('')
def verificarCuenta(cuenta):
    contar = len(str(cuenta))
    if contar == 10:
        return True
    else:
        print('⚠️ Incorrecto / Volver a ingresar')
def mostrarBancos():
    cont=1
    for i in bancos:
        print(cont,': ', i)
        cont=cont+1
saldoCliente= 750 #importante
while True:
    print('--------------\nTRANSFERENCIAS\n--------------')
    bancos =['Falabella','BanBif','Interbank','BBVA','Pichincha']
    mostrarBancos()
    espacio()
    while True:
        try:
            bC=int(input('Selecciona número de tu banco: '))
            bancoCliente = bC - 1 #importante
            print("Tu banco es: ", bancos[bancoCliente])
            break
        except:
            print('Valores Incorrectos')

    espacio()
    cuentaCliente=int(input('Número de cuenta: ')) #importante
    while verificarCuenta(cuentaCliente)!= True:
        cuentaCliente=int(input('Número de cuenta: '))
    espacio()
    mostrarBancos()
    espacio()
    bD= int(input('Selecciona el número del banco destino: ')) 
    bancoDestino= bD - 1 #importante
    cuentaDestino= int(input('Número de cuenta del destino: '))#importante
    while verificarCuenta(cuentaDestino) != True or (cuentaDestino==cuentaCliente):
        print('⚠️ Operacion Imposible de realizar')
        cuentaDestino= int(input('Número de cuenta del destino: '))
    espacio()
    montoTransac= int(input('Monto a transferir: '))
    if bancoCliente == bancoDestino:
        comision= 0
    else:
        comision= montoTransac * 0.10
    print('Comision: ',comision)
    transacTotal= montoTransac + comision
    saldoCliente= saldoCliente - transacTotal
    print('Saldo disponible: ',saldoCliente)
    espacio()
    time.sleep(3)```
Anotación 2020-08-30 033450.png
var bancoDestino = document.getElementById("bancoReceptor");
var bancoCliente  = document.getElementById("bancoEmisor");
var cuentaCliente = document.getElementById("cuentaEmisora");
var cuentaDestino = document.getElementById("cuentaDestino");
var verificacion = document.getElementById("verificarC");
var boton = document.getElementById("enviar");
var monto = document.getElementById("monto");
var aviso = document.getElementById("saldo");
var correcto = document.getElementById("correcto");
var comision = 100;
var cuenta1, cuenta2, saldoCliente, banco1, banco2;


verificacion.addEventListener("click", verificarCuentas);


function verificarCuentas()         //Verificar los numeros de cuentas ingresados comparandolos con las cuentas ya existentes
{
  validarEmisor = parseInt(cuentaCliente.value);
  validarReceptor = parseInt(cuentaDestino.value);
  class cuentasValidas
  {
    constructor(c, s)
    {
      this.codigo = c;
      this.saldo = s;
    }

    datos ()
    {
      var numero = this.codigo;
      var saldo = this.saldo;

      if (validarEmisor == numero)
      {
        cuenta1 = true;
        saldoCliente = saldo;
      }

      if (validarReceptor == numero)
      {
        cuenta2 = true;
      }
      console.log("N° de cuenta " + numero + ", saldo de cuenta $" + saldo);
    }
  }

  var cuentas = [];
  cuentas.push(new cuentasValidas(1010, 20000));
  cuentas.push(new cuentasValidas(2020, 40000));
  cuentas.push(new cuentasValidas(3030, 60000));
  cuentas.push(new cuentasValidas(4040, 80000));
  cuentas.push(new cuentasValidas(5050, 100000));

  for (x of cuentas)
  {
    x.datos();
  }

  if (cuenta1 && cuenta2)
  {
    correcto.innerHTML = "¡Cuentas verificadas correctamente! Su saldo es de $" + saldoCliente;

  }
  else
  {
    alert("N° de cuenta incorrecto");
  }

  boton.addEventListener("click", transaccion);
}


function transaccion()        // Inicia la transaccion despues de verificar las cuentas
{
  monto = parseInt(monto.value);
  banco1 = parseInt(bancoCliente.value);
  banco2 = parseInt(bancoDestino.value);

  if (cuenta1 && cuenta2)
  {
      if (banco1 == banco2)
      {
        comision = 0;
      }

      saldoCliente = saldoCliente - (monto + comision);

      if (saldoCliente >= 0)
      {
        aviso.innerHTML = "Transaccion aprobada, su saldo restante es de $" + saldoCliente;
      }
      else
      {
        aviso.innerHTML = "Saldo insuficiente";
      }
  }
  else
  {
    aviso.innerHTML = "no se pudo verificar las cuentas";
  }
}

Yo hice fue asi O_o

<
var bancoCli = "Bancolombia";
var bancoDes = "Davivienda";
var cuentaCli = "000400012";
var cuentaDes = "123456789";
var saldoCli = 11000;
var saldoDes = 0;
var horaTransf = 16;
var saldoTransf = 150;
var costoTransf = 0;

if (horaTransf >= 9 && horaTransf <= 12 || horaTransf >= 15 && horaTransf <= 20) {

if (cuentaCli == "000400012") {  //cliente existe
  if (cuentaDes == "123456789") { //destino existe

      if (saldoCli > saldoTransf) { //saldo suficiente
        document.write("<strong>Inicio transaccion...</strong><br>");
        document.write("<br><strong>De : </strong>" + bancoCli + " <br><strong>Para : </strong>" + bancoDes);
        document.write("<br><strong>Cuenta remitente : </strong>" + cuentaCli + " <br><strong>Cuenta destino : </strong>" + cuentaDes + "<br>");

            if (bancoDes == bancoCli) { //costo transaccion
                costoTransf = 0;
              document.write("<br><strong>Saldo en la cuenta : </strong>$" + saldoCli + " USD");
                saldoDes += saldoTransf;
                saldoCli+= -saldoTransf - costoTransf;

              document.write("<br><strong>Saldo transferido : </strong>$" + saldoTransf + " USD");
              document.write("<br><strong>Costo transacicon : </strong>$" + costoTransf + " USD");
              document.write("<br><strong>Nuevo saldo Cuenta : </strong>$" + saldoCli + " USD <br>");
            }else {

                costoTransf = 100;
                  if (saldoCli - costoTransf < saldoTransf) {
                    document.write("<br>El saldo no cubre el costo de transaccion<br>");
                  }else {
                    document.write("<br><strong>Saldo en la cuenta : </strong>$" + saldoCli + " USD");
                    saldoDes += saldoTransf;
                    saldoCli+= -saldoTransf - costoTransf;

                    document.write("<br><strong>Saldo transferido : </strong>$" + saldoTransf + " USD");
                    document.write("<br><strong>Costo transacicon : </strong>$"+ costoTransf + " USD");
                    document.write("<br><strong>Nuevo saldo Cuenta : </strong>$" + saldoCli + " USD <br>");
                  }
            }

          document.write("<br><strong>...Transaccion Finalizada!</strong>");
      }else {
        document.write("El saldo del cliente no es suficiente");

      }

  }
  else {
  document.write("No existe esa cuenta");
  }
}
else {
  document.write("No esta registrada esa cuenta cliente");
}
}
else {
  document.write("No es posible realizar por fuera de horario");
}

>

var banco_cliente = true;
var cuenta_cliente = true;
var saldo = 3000000;
var banco_destino = true;
var cuenta_destino = true;
var cliente = true
var montoTransferencia = 1000000
var horaTransf = 10

if (banco_destino != banco_cliente)
{
costoTrasaccion = 100;
}

if((cuenta_cliente && cuenta_destino) && (saldo > (montoTransferencia + costoTrasaccion) && ((horaTransf >= 9 || <= 12) || (horaTransf >=15 || <= 20)))
{
saldo = saldo -(montoTransferencia + costoTrasaccion);
alert(“Transferencia Lista”);
}