Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.time.LocalDate;
- /**
- * Write a description of class ListaTareas here.
- *
- * @author (Cristian)
- * @version (16.01.17)
- */
- public class ListaTareas
- {
- private ArrayList<Tarea> listaDeTareas;
- private int proximoId;
- public ListaTareas()
- {
- listaDeTareas = new ArrayList<Tarea>();
- proximoId = 10;
- }
- /**
- * Metodo que permite añadir una tarea a nuestra lista de tareas pasandole por parametro la descripcion de esa tarea que queremos añadir
- */
- public void aniadirTarea(String descripcionTarea)
- {
- Tarea tarea = new Tarea(descripcionTarea, proximoId);
- listaDeTareas.add(tarea);
- if (tarea.getId() >= 10 && tarea.getId() <= 99) {
- proximoId = proximoId + 1;
- }
- }
- /**
- * Metodo que mustra por pantalla todas las tareas que tenemos creadas
- */
- public void mostrarTareas()
- {
- int posicion = 1;
- for (Tarea tarea : listaDeTareas) {
- System.out.println(tarea);
- posicion++;
- }
- }
- /**
- * Metodo que permite marcar una tarea de nuestra lista de tareas como completada pasandole por parametro el id de la tarea que queremos marcar como completada
- */
- public void marcarComoCompletada(int proximoId)
- {
- for (Tarea tarea : listaDeTareas){
- if(proximoId == tarea.getId()){
- tarea.marcarComoCompletada();
- }
- }
- }
- /**
- * Metodo que muestra las coincidencias de las tareas con un texto que nosotros le pasamos por parametro
- */
- public void mostrarCoincidentes(String textoABuscar)
- {
- int posicion = 0;
- while (posicion < listaDeTareas.size()) {
- Tarea tareaActual = listaDeTareas.get(posicion);
- if (tareaActual.getDescripcion().contains(textoABuscar)) {
- System.out.println((posicion + 1) + tareaActual.toString());
- }
- posicion++;
- }
- }
- /**
- * Metodo que permite eliminar una tarea de nuestra lista de tareas pasandole por parametro el id de la tarea que queremos borrar de nmuestra lista
- */
- public void eliminarTarea(int proximoId)
- {
- int posicionReal = getPosicionById(proximoId);
- if (posicionReal != -1){
- listaDeTareas.remove(posicionReal);
- }
- }
- public void establecerNuevaPrioridad (int proximoId , int prioridad){
- for(Tarea tarea : listaDeTareas){
- if (proximoId == tarea.getId()){
- if(prioridad >= 0 && prioridad <= 5){
- tarea.cambiarPrioridad(prioridad);
- }
- }
- }
- }
- public void setFechaVencimiento(int proximoId, int anio, int mes, int dia)
- {
- for (Tarea tarea : listaDeTareas){
- if (proximoId == tarea.getId()){
- tarea.establecerFechaVencimiento(anio, mes, dia);
- }
- }
- }
- /**
- * Metodo que muestra por pantalla el listado de tareas con feche de vencimiento hoy. Si no hya ninguna, el listado debe aparecer vacio
- */
- public void mostrarHoy()
- {
- int posicion = 1;
- LocalDate hoy = LocalDate.now();
- for (Tarea tarea : listaDeTareas) {
- if (tarea.getFechaVencimiento() != null){
- if(tarea.getFechaVencimiento().isEqual(hoy)){
- System.out.println(posicion + ". " + tarea.toString());
- }
- }
- posicion++;
- }
- }
- /**
- * Metodo que muestre por pantalla el listado de tareas vencidas. Si no hya ninguna , no sale nada por pantalla
- */
- public void mostrarVencidas ()
- {
- int posicion = 1;
- LocalDate hoy = LocalDate.now();
- for (Tarea tarea : listaDeTareas) {
- if (tarea.getFechaVencimiento() != null){
- if(tarea.getFechaVencimiento().isBefore(hoy)){
- System.out.println(posicion + ". " + tarea.toString());
- }
- }
- posicion++;
- }
- }
- /**
- * Metodo que muestra por pantalla la tarea con la mas alta prioridad. Si hay varias empatadas, debe mostrar todas las empatadas
- */
- public void verTareaMasPrioritaria()
- {
- int prioridadMax = 0;
- for (Tarea tarea : listaDeTareas){
- if (prioridadMax < tarea.getPrioridad()){
- prioridadMax = tarea.getPrioridad();
- }
- }
- int posicion = 0;
- while (posicion < listaDeTareas.size()){
- Tarea tareaActual = listaDeTareas.get(posicion);
- if (tareaActual.getPrioridad() == prioridadMax){
- System.out.println((posicion + 1) + ". " + tareaActual.toString());
- }
- posicion ++;
- }
- }
- /**
- * Metodo que mustra por pantalla la tarea con la prioridad mas alta. En caso de empate, muestra solo la ultima tarea
- */
- public void verTareaMasPrioritaria2()
- {
- if (listaDeTareas.size() > 0) {
- Tarea tareaMasPrioritaria = listaDeTareas.get(0);
- for (Tarea tareaActual : listaDeTareas){
- if (tareaActual.getPrioridad() >= tareaMasPrioritaria.getPrioridad()){
- tareaMasPrioritaria = tareaActual;
- }
- }
- System.out.println(tareaMasPrioritaria);
- }
- }
- /**
- * Metodo que devuelve el indice de una tarea en funcion de su ID en caso de que exista. Devuelve -1 en caso de que no sea capaz de encontrar una tarea con ese id
- */
- public int getPosicionById(int idBuscada){
- int posicionBuscada = -1;
- int posicionActual = 0;
- boolean buscando = true;
- while ( (posicionActual < listaDeTareas.size()) && (buscando)){
- if (listaDeTareas.get(posicionActual).getId() == idBuscada){
- posicionBuscada = posicionActual;
- buscando = false;
- }
- posicionActual++;
- }
- return posicionBuscada;
- }
- /**
- * Metodo que devuelve el id de la tarea mas antigua (por orden de registro) de nuestra lista que aun no esta completada. En caso de que no haya tareas sin completar devuelve -1
- */
- public int tareaMasVIeja(){
- int idADevolver = -1;
- int index = 0;
- boolean buscando = true;
- while (index < listaDeTareas.size() && buscando){
- Tarea tareaActual = listaDeTareas.get(index);
- if (!(tareaActual.estaTerminada())) {
- idADevolver = tareaActual.getId();
- buscando = false;
- }
- index ++;
- }
- return idADevolver;
- }
- /**
- * Metodo que devuelve el numero de tareas que esta sin terminar
- */
- public int numeroTareasSinTerminar(){
- int tareasPendientes = 0;
- int posicion = 0;
- while ( posicion < listaDeTareas.size()){
- Tarea tareaActual = listaDeTareas.get(posicion);
- if (!(tareaActual.estaTerminada())){
- tareasPendientes++;
- }
- posicion++;
- }
- return tareasPendientes;
- }
- /**
- * Metodo que devuelve true en caso de que haya dos tareas con la misma descripcion en nuestra lista de tareas o devuelve false ne caso contrario
- */
- public boolean hayTareasDuplicadas(){
- boolean duplicadas = false;
- int posicion = 0;
- boolean buscando = true;
- int index = 1;
- while ( posicion < listaDeTareas.size() && (buscando)){
- Tarea tareaUno = listaDeTareas.get(posicion);
- while ( index < listaDeTareas.size() && (buscando)){
- Tarea tareaDos = listaDeTareas.get(index);
- if (tareaUno.getDescripcion() == tareaDos.getDescripcion()){
- duplicadas = true;
- buscando = false;
- }
- index ++;
- }
- posicion++;
- index = posicion + 1;
- }
- return duplicadas;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement