Advertisement
KaeruCT

me cansé

Apr 22nd, 2011
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.75 KB | None | 0 0
  1. import java.util.Calendar;
  2. import java.util.Date;
  3. import java.text.SimpleDateFormat;
  4.  
  5. public class RutinasPeliculas{
  6.  
  7.     static final byte MAX_PRESTAMO = 5;
  8.     static final SimpleDateFormat formFecha = new SimpleDateFormat("dd/MM/yyyy");
  9.     static final String[] infoUsuarios = {"Cedula", "Nombre", "Apellido 1", "Apellido 2", "Telefono"},
  10.     infoPeliculas = {"Id", "Titulo", "Tipo", "Ano de produccion", "Ubicacion"},
  11.     infoPrestamos = {"Cedula del usuario", "Id de la pelicula", "Fecha", "Dias"};
  12.    
  13.     static String[][] usuarios, peliculas, prestamos;
  14.     // usuarios [cedula, nombre, apellido1, apellido2, telefono]
  15.     // peliculas [id, titulo, tipo, ano, ubicacion]
  16.     // prestamos [cedulaUsuario, idPelicula, fechaInicio, fechaFinal]
  17.    
  18.     public static void registrarUsuario(String[] usuario){
  19.         usuarios = agregarFila(usuario, usuarios);
  20.     }
  21.    
  22.     public static void registrarPelicula(String[] pelicula){
  23.         peliculas = agregarFila(pelicula, peliculas);
  24.     }
  25.    
  26.     public static void registrarPrestamo(String[] prestamo){
  27.         prestamos = agregarFila(prestamo, prestamos);
  28.     }
  29.    
  30.     public static boolean esDuracionValida(int nDias){
  31.         return nDias <= MAX_PRESTAMO;
  32.     }
  33.    
  34.     public static String[] obtenerUsuario(String cedUsuario){
  35.         // solo la primera fila, se asume que la cedula es unica
  36.         return buscarPrimerFila(usuarios, 0, cedUsuario);
  37.     }
  38.    
  39.     public static String[][] obtenerListaPrestamos(String cedUsuario){
  40.         return buscarTodasLasFilas(prestamos, 0, cedUsuario);
  41.     }
  42.    
  43.     public static String[] obtenerPeliculaPorID(String idPelicula){
  44.         // solo la primera fila, se asume que el id es unico
  45.         String[] pelicula = buscarPrimerFila(peliculas, 0, idPelicula);
  46.        
  47.         if(pelicula != null){ // si la pelicula existe determinar el estado
  48.             String estadoPelicula = obtenerEstadoPelicula(pelicula[0]);
  49.             pelicula = agregarDato(estadoPelicula, pelicula);
  50.         }
  51.        
  52.         return pelicula;
  53.     }
  54.    
  55.     public static String[] obtenerPeliculaPorTitulo(String tituloPelicula){
  56.         // solo la primera fila, se asume que el titulo es unico
  57.         String[] pelicula = buscarPrimerFila(peliculas, 1, tituloPelicula);
  58.        
  59.         if(pelicula != null){ // si la pelicula existe determinar el estado
  60.             String estadoPelicula = obtenerEstadoPelicula(pelicula[0]);
  61.             pelicula = agregarDato(estadoPelicula, pelicula);
  62.         }
  63.         return pelicula;
  64.     }
  65.    
  66.     public static String obtenerEstadoPelicula(String idPelicula){
  67.         String estado = "No prestada";
  68.         String[] prestamo = buscarPrimerFila(prestamos, 1, idPelicula); // buscar si esta pelicula ha sido prestada
  69.         if(prestamo != null) estado = "Prestada";
  70.        
  71.         return estado;
  72.     }
  73.    
  74.     public static String obtenerFechaDevolucion(String[] prestamo) throws java.text.ParseException{
  75.         Date fecha = formFecha.parse(prestamo[2]);
  76.         fecha = agregarDias(Integer.parseInt(prestamo[3]));
  77.         return formFecha.format(fecha);
  78.     }
  79.    
  80.     public static Date agregarDias(int nDias){
  81.         Calendar c = Calendar.getInstance();
  82.         c.add(Calendar.DAY_OF_YEAR, nDias);
  83.         return c.getTime();    
  84.     }
  85.    
  86.     public static String[] buscarPrimerFila(String[][] tabla, int nCol, String dato){
  87.         int nFila = -1, i = 0;
  88.         String[] fila = null;
  89.        
  90.         while(nFila == -1 && i < tabla.length){
  91.             if(dato.equals(tabla[i][nCol])){
  92.                 nFila = i;
  93.             }
  94.             i++;
  95.         }
  96.        
  97.         if(nFila != -1){ // se encontro el dato en la columna
  98.             fila = tabla[nFila];
  99.         }
  100.        
  101.         return fila;
  102.     }
  103.    
  104.     public static String[][] buscarTodasLasFilas(String[][] tabla, int nCol, String dato){
  105.         String[][] filas = null;
  106.        
  107.         for(int i = 0; i < tabla.length; i++){
  108.             if(dato.equals(tabla[i][nCol])){
  109.                 filas = agregarFila(tabla[i], filas);
  110.             }
  111.         }
  112.        
  113.         return filas;
  114.     }
  115.    
  116.     public static String[] agregarDato(String dato, String[] arr){
  117.         String[] nuevoArr;
  118.         if(arr == null){ // no ha sido inicializado el arreglo
  119.             nuevoArr = new String[]{dato}; // se inicializa con el dato enviado
  120.         }else{
  121.             // crear el nuevo arreglo con una posicion mas que el anterior
  122.             nuevoArr = new String[arr.length+1];
  123.             int i;
  124.            
  125.             for(i = 0; i < arr.length; i++){
  126.                 // copiar cada dato del arreglo viejo al nuevo
  127.                 nuevoArr[i] = arr[i];
  128.             }
  129.             // agregar el nuevo dato al arreglo nuevo
  130.             nuevoArr[i] = dato;
  131.         }
  132.         return nuevoArr;
  133.     }
  134.    
  135.     public static String[][] agregarFila(String[] fila, String[][] tabla){
  136.         String[][] nuevaTabla;
  137.         if(tabla == null){ // no ha sido inicializada la tabla
  138.             nuevaTabla = new String[][]{fila}; // se inicializa con la fila enviada
  139.         }else{
  140.             // crear la nueva tabla con una fila mas que la anterior
  141.             nuevaTabla = new String[tabla.length+1][tabla[0].length];
  142.             int i;
  143.            
  144.             for(i = 0; i < tabla.length; i++){
  145.                 // copiar cada fila de la tabla vieja a la tabla nueva
  146.                 nuevaTabla[i] = tabla[i];
  147.             }
  148.             // agregar la nueva fila a la tabla nueva
  149.             nuevaTabla[i] = fila;
  150.         }
  151.         return nuevaTabla;
  152.     }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement