Java - Como mostrar todas las cuentas de una Array?

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 6 puestos en Java (en relación al último mes)
Gráfica de Java

Como mostrar todas las cuentas de una Array?

Publicado por Nicolas Aravena (3 intervenciones) el 22/11/2019 04:27:21
Hola ,tengo unas dudas como puedo mostrar las cuentas de Clientes que ingrese en una Array anterior mente y la otra es mostrarlos los clientes que tengan 5 años o mas de antigüedad ? e probado ya varias formas y no logro que funcionen ,de antemano muchas gracias por su tiempo .


1
2
3
4
5
6
7
8
9
10
11
12
public class Manejadora {
    private ArrayList<CuentaC>Clientes=new ArrayList<CuentaC>();
 
 
public int buscarCliente (String rut)
    {
        for(int i = 0; i <Clientes.size();i++)
        {
            if(Clientes.get(i).getNombreC().compareToIgnoreCase(rut)==0)
                return i;
        }
        return -1;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 5
Ha aumentado su posición en 6 puestos en Java (en relación al último mes)
Gráfica de Java

Como mostrar todas las cuentas de una Array?

Publicado por Nicolas Aravena (3 intervenciones) el 22/11/2019 06:17:06
logre saber como imprimir los elementos de una Array pero todavía no se como imprimir los clientes de 5 años de antigüedad me podrían orientar en el tema por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 186
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Como mostrar todas las cuentas de una Array?

Publicado por Juan (70 intervenciones) el 22/11/2019 10:22:57
Muy buenas Nicolas, no entiendo muy bien el ejemplo que pones, esa funcion retorna un cliente con el nombre que le pasas. para imprimir suponiendo que quieres imprimir por consola, seria:

1
2
3
4
5
public void imprimirClientes(){
    	  for (int i=0; i<Clientes.size(); i++){
    		  System.out.println("Nombre : "+Clientes.get(i).getNombreC()+" Apellido: "+Clientes.get(i).getApellidoC());
    	  }
}

y luego para imprimir solo con más de 5 años de antigüedad, imagino que tendrás alguna variable que almacene la fecha de inscripción o algo por el estilo, ya que no has dado muchos detalles. sería comparar esa fecha de inscripción con la fecha actual, quedando de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void imprimirAntiguedad(){
    	  Date fechaActual = new Date();
    	  for (int i=0; i<Clientes.size(); i++){
    		  if (fechaActual.getYear()>(Clientes.get(i).getInscripcion().getYear()+5)){
    			  System.out.println(Clientes.get(i).getNombre()+Clientes.get(i).getCuenta());
    		  } else{
    			  if (fechaActual.getYear()==(Clientes.get(i).getInscripcion().getYear()+5)){
        			  if(fechaActual.getMonth()>Clientes.get(i).getInscripcion().getMonth()){
        				  System.out.println(Clientes.get(i).getNombre()+Clientes.get(i).getCuenta());
        			  }else{
        				  if(fechaActual.getMonth()==Clientes.get(i).getInscripcion().getMonth()){
            				  	 if (fechaActual.getDay()>=Clientes.get(i).getInscripcion().getDay()){
            					  	 System.out.println(Clientes.get(i).getNombre()+Clientes.get(i).getCuenta());
            				 	  }
            			  	 }
        			  }
        		  }
    		  }
    	  }
      }

el primer if compara si tiene más de 5 años, pero si te inscribiste el 10/10/2014 y estamos a 05/10/2019 aun no cumples los 5 años de antiguedad, pero si comparas solo el año te dira que si tienes 5 años, y no es así, por eso el resto de if, para verificar si estas justo en los 5 años verificar el mes, y si estas en el mismo mes verificar el dia. no se si es esto lo que querías.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como mostrar todas las cuentas de una Array?

Publicado por Rodrigo (623 intervenciones) el 22/11/2019 16:40:16
Sugiero una mejora al codigo que amablemente provee Juan,

Parece mas ordenado crear una nueva funcion que decida si hay que imprimir o no, y que haga la comparacion de fechas, para evitar tener tantos print como los que aparecen en la linea 5, 9 y 13 en ese codigo.

Algo asi como

1
2
3
4
5
for (int i=0; i<Clientes.size(); i++) {
    if( masQue5( Clientes.get(i) ) {
        System.out.println(Clientes.get(i).getNombre()+Clientes.get(i).getCuenta());
    }
}

y masQue5 hace toda la logica de fechas que aparece arriba tambien y retorna un booleano para indicar que efectivamente se cumplen 5 an~os.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar