Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Write a description of class ListaTareas here.
- *
- * @author (Marcos)
- * @version (1.13)
- */
- import java.util.*;
- import java.time.*;
- public class ListaTareas
- {
- //Crea la lista de tareas.
- private ArrayList<Tarea> listaTareas;
- private LocalDate diaHoy;
- private int idTareas;
- /**
- * Constructor de la clase que inicializa la lista de tareas.
- */
- public ListaTareas() {
- listaTareas = new ArrayList<Tarea>();
- diaHoy = LocalDate.now();
- idTareas = 10;
- }
- /**
- * Añadimos la tarea a nuestra lista.
- */
- public void nuevaTarea(String nombre) {
- if (idTareas < 99){
- Tarea miTarea = new Tarea(nombre, idTareas);
- listaTareas.add(miTarea);
- idTareas ++;
- }
- }
- /**
- * Muestra nuestra lista de tareas numeradas
- */
- public void mostrarTareas() {
- //Variable para indicar el numero de tarea desde el punto del usuario.
- for (Tarea tarea:listaTareas){
- System.out.println(tarea.toString());
- }
- }
- /**
- * Marcamos la tarea indicada por su numero de usuario como hecha
- */
- public void marcarHecha(int idDeTarea) {
- int numeroDeTarea = getPosicion(idDeTarea);
- if (numeroDeTarea >= 0 && numeroDeTarea <= listaTareas.size()) {
- listaTareas.get(numeroDeTarea).tareaHecha();
- }
- }
- /**
- * Este metodo nos muestra todas las tareas que contengan un determinado texto.
- */
- public void buscarTarea(String texto) {
- boolean coincidencia = false;
- for (Tarea tarea:listaTareas){
- if(tarea.nombre().contains(texto)) {
- System.out.println(tarea.toString());
- coincidencia = true;
- }
- }
- if(coincidencia = false) {
- System.out.println("No hay tareas que contengan este texto.");
- }
- }
- /**
- * Este metodo nos permite eliminar tarea que le indiquemos segun su posicion de usuario.
- */
- public void eliminarTarea(int idTarea) {
- int posicionTarea = getPosicion(idTarea);
- //Este if nos permite controlar que el parametro introducido es valido.
- if(posicionTarea >= 0 && posicionTarea < listaTareas.size()){
- listaTareas.remove(posicionTarea);
- }
- }
- /**
- * Este metodo nos permite cambiar la prioridad de una tarea ya creada
- * de nuestra lista de tareas
- */
- public void cambiarPrioridad (int idTarea, int prioridad) {
- int posicionTarea = getPosicion(idTarea);
- if(posicionTarea >= 0 && posicionTarea <= listaTareas.size()) {
- listaTareas.get(posicionTarea).establecerPrioridad(prioridad);
- }
- }
- /**
- * Este metodo nos permite fija la fecha de vencimiento.
- */
- public void setFechaVencimiento(int idTarea, int anio, int mes, int dia)
- {
- int posicionReal = getPosicion(idTarea);
- if (posicionReal >= 0 && posicionReal <= listaTareas.size()){
- listaTareas.get(posicionReal).establecerFechaVencimiento(anio, mes, dia);
- }
- }
- /**
- * Este metodo muestra las tareas que tengan la fecha de vencimiento del dia de hoy.
- */
- public void mostrarHoy() {
- for(Tarea tarea:listaTareas) {
- if(tarea.fechaDeVencimiento() != null){
- if(tarea.fechaDeVencimiento().isEqual(diaHoy)){
- System.out.println(tarea.toString());
- }
- }
- }
- }
- /**
- * Este metodo nos muestra solo las tareas que tienen venciada su fecha.
- */
- public void mostrarVencidadas(){
- for(Tarea tarea:listaTareas) {
- if(tarea.fechaDeVencimiento() != null){
- if(tarea.fechaDeVencimiento().isBefore(diaHoy)){
- System.out.println(tarea.toString());
- }
- }
- }
- }
- /**
- * Este metodo permite identificar la tarea prioritaria y mostrarla por pantalla.
- */
- public void verTareaPrioritaria(){
- int prioridad = 0;
- for(Tarea tarea:listaTareas) {
- if (tarea.getPrioridad() > prioridad){
- prioridad = tarea.getPrioridad();
- }
- }
- for (Tarea tarea:listaTareas){
- if(tarea.getPrioridad() == prioridad){
- if(tarea.fechaDeVencimiento() == null) {
- System.out.println(tarea.toString());
- }
- }
- }
- }
- /**
- * Este metodo muestra la ultima tarea prioritaria en caso de que haya dos iguales.
- */
- public void verTareaPrioritaria2() {
- if (listaTareas.size() > 0){
- Tarea tareaPrioritaria = listaTareas.get(0);
- for (Tarea tarea:listaTareas) {
- if(tarea.getPrioridad() >= tareaPrioritaria.getPrioridad()){
- tareaPrioritaria = tarea;
- }
- }
- System.out.println(tareaPrioritaria.toString());
- }
- }
- /**
- * Este metodo nos permite obtener la posicion de un objeto tarea en funcion de su ID.Si no
- * encuentra ninguna devuelve -1 y un mensaje de advertencia.
- */
- private int getPosicion(int idTarea){
- int posicion = 0;
- int posicionReal = -1;
- boolean existe = false;
- while ((posicion < listaTareas.size()) && (existe == false)) {
- if (listaTareas.get(posicion).getId() == idTarea) {
- posicionReal = posicion;
- existe = true;
- }
- posicion ++;
- }
- if(existe == false){
- System.out.println("No existe la tarea.");
- }
- return posicionReal;
- }
- public int tareaMasViejaPendiente(){
- boolean noHecha = false;
- int contador = 0;
- int idTareaPendiente = -1;
- while((noHecha == false) && (contador < listaTareas.size())){
- if(listaTareas.get(contador).estadoTarea().equals("HECHA") == false){
- idTareaPendiente = listaTareas.get(contador).getId();
- noHecha = true;
- }
- contador ++;
- }
- return idTareaPendiente;
- }
- public int numeroTareasSinTerminar() {
- int tareas = 0;
- for(Tarea tarea:listaTareas) {
- if(tarea.estadoTarea().equals("HECHA")== false) {
- tareas ++;
- }
- }
- return tareas;
- }
- public boolean hayTareasDuplicadas() {
- boolean duplicadas = false;
- int contador1 = 0;
- int contador2 = 0;
- while((duplicadas == false) && contador1 < listaTareas.size()) {
- String descripcion = listaTareas.get(contador1).nombre();
- while(contador2 < listaTareas.size() && (duplicadas == false)) {
- String descripcion2 = listaTareas.get(contador2).nombre();
- if(descripcion2 == descripcion && (contador1 != contador2)) {
- duplicadas = true;
- }
- contador2 ++;
- }
- contador1 ++;
- }
- return duplicadas;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement