Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Calendar;
- import java.util.Date;
- import java.text.SimpleDateFormat;
- public class RutinasPeliculas{
- static final byte MAX_PRESTAMO = 5;
- static final SimpleDateFormat formFecha = new SimpleDateFormat("dd/MM/yyyy");
- static final String[] infoUsuarios = {"Cedula", "Nombre", "Apellido 1", "Apellido 2", "Telefono"},
- infoPeliculas = {"Id", "Titulo", "Tipo", "Ano de produccion", "Ubicacion"},
- infoPrestamos = {"Cedula del usuario", "Id de la pelicula", "Fecha", "Dias"};
- static String[][] usuarios, peliculas, prestamos;
- // usuarios [cedula, nombre, apellido1, apellido2, telefono]
- // peliculas [id, titulo, tipo, ano, ubicacion]
- // prestamos [cedulaUsuario, idPelicula, fechaInicio, fechaFinal]
- public static void registrarUsuario(String[] usuario){
- usuarios = agregarFila(usuario, usuarios);
- }
- public static void registrarPelicula(String[] pelicula){
- peliculas = agregarFila(pelicula, peliculas);
- }
- public static void registrarPrestamo(String[] prestamo){
- prestamos = agregarFila(prestamo, prestamos);
- }
- public static boolean esDuracionValida(int nDias){
- return nDias <= MAX_PRESTAMO;
- }
- public static String[] obtenerUsuario(String cedUsuario){
- // solo la primera fila, se asume que la cedula es unica
- return buscarPrimerFila(usuarios, 0, cedUsuario);
- }
- public static String[][] obtenerListaPrestamos(String cedUsuario){
- return buscarTodasLasFilas(prestamos, 0, cedUsuario);
- }
- public static String[] obtenerPeliculaPorID(String idPelicula){
- // solo la primera fila, se asume que el id es unico
- String[] pelicula = buscarPrimerFila(peliculas, 0, idPelicula);
- if(pelicula != null){ // si la pelicula existe determinar el estado
- String estadoPelicula = obtenerEstadoPelicula(pelicula[0]);
- pelicula = agregarDato(estadoPelicula, pelicula);
- }
- return pelicula;
- }
- public static String[] obtenerPeliculaPorTitulo(String tituloPelicula){
- // solo la primera fila, se asume que el titulo es unico
- String[] pelicula = buscarPrimerFila(peliculas, 1, tituloPelicula);
- if(pelicula != null){ // si la pelicula existe determinar el estado
- String estadoPelicula = obtenerEstadoPelicula(pelicula[0]);
- pelicula = agregarDato(estadoPelicula, pelicula);
- }
- return pelicula;
- }
- public static String obtenerEstadoPelicula(String idPelicula){
- String estado = "No prestada";
- String[] prestamo = buscarPrimerFila(prestamos, 1, idPelicula); // buscar si esta pelicula ha sido prestada
- if(prestamo != null) estado = "Prestada";
- return estado;
- }
- public static String obtenerFechaDevolucion(String[] prestamo) throws java.text.ParseException{
- Date fecha = formFecha.parse(prestamo[2]);
- fecha = agregarDias(Integer.parseInt(prestamo[3]));
- return formFecha.format(fecha);
- }
- public static Date agregarDias(int nDias){
- Calendar c = Calendar.getInstance();
- c.add(Calendar.DAY_OF_YEAR, nDias);
- return c.getTime();
- }
- public static String[] buscarPrimerFila(String[][] tabla, int nCol, String dato){
- int nFila = -1, i = 0;
- String[] fila = null;
- while(nFila == -1 && i < tabla.length){
- if(dato.equals(tabla[i][nCol])){
- nFila = i;
- }
- i++;
- }
- if(nFila != -1){ // se encontro el dato en la columna
- fila = tabla[nFila];
- }
- return fila;
- }
- public static String[][] buscarTodasLasFilas(String[][] tabla, int nCol, String dato){
- String[][] filas = null;
- for(int i = 0; i < tabla.length; i++){
- if(dato.equals(tabla[i][nCol])){
- filas = agregarFila(tabla[i], filas);
- }
- }
- return filas;
- }
- public static String[] agregarDato(String dato, String[] arr){
- String[] nuevoArr;
- if(arr == null){ // no ha sido inicializado el arreglo
- nuevoArr = new String[]{dato}; // se inicializa con el dato enviado
- }else{
- // crear el nuevo arreglo con una posicion mas que el anterior
- nuevoArr = new String[arr.length+1];
- int i;
- for(i = 0; i < arr.length; i++){
- // copiar cada dato del arreglo viejo al nuevo
- nuevoArr[i] = arr[i];
- }
- // agregar el nuevo dato al arreglo nuevo
- nuevoArr[i] = dato;
- }
- return nuevoArr;
- }
- public static String[][] agregarFila(String[] fila, String[][] tabla){
- String[][] nuevaTabla;
- if(tabla == null){ // no ha sido inicializada la tabla
- nuevaTabla = new String[][]{fila}; // se inicializa con la fila enviada
- }else{
- // crear la nueva tabla con una fila mas que la anterior
- nuevaTabla = new String[tabla.length+1][tabla[0].length];
- int i;
- for(i = 0; i < tabla.length; i++){
- // copiar cada fila de la tabla vieja a la tabla nueva
- nuevaTabla[i] = tabla[i];
- }
- // agregar la nueva fila a la tabla nueva
- nuevaTabla[i] = fila;
- }
- return nuevaTabla;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement