Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.66 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.time.LocalDate;
  3. /**
  4. * Write a description of class ListaTareas here.
  5. *
  6. * @author (Oschariv)
  7. * @version (2.0 - 15/12/2016)
  8. */
  9. public class ListaTareas
  10. {
  11. // Crea un array a partir de la clase tarea.
  12. private ArrayList<Tarea> listaDeTareas;
  13. // Almacena el identificador de la tarea en la lista de tareas.
  14. private int id;
  15.  
  16. /**
  17. * Constructor for objects of class ListaTareas
  18. */
  19. public ListaTareas()
  20. {
  21. listaDeTareas = new ArrayList<Tarea>();
  22. id = 0;
  23. }
  24.  
  25. /**
  26. * Metodo que permite añadir una nueva tarea.
  27. */
  28. public void addTarea(String descripcion)
  29. {
  30. if (id < 89) {
  31. Tarea nuevaTarea = new Tarea(id, descripcion);
  32. listaDeTareas.add(nuevaTarea);
  33. id++;
  34. }
  35. }
  36.  
  37. /**
  38. * Muestra todas las tareas existentes (usando un bucle WHILE)
  39. * y que esten numerdadas.
  40. */
  41. public void mostrarTareasNumeradas()
  42. {
  43. int contador = 0;
  44. while (contador < listaDeTareas.size()) {
  45. System.out.println(listaDeTareas.get(contador).toString());
  46. contador++;
  47. }
  48. }
  49.  
  50. /**
  51. *
  52. */
  53. public boolean esValidoElIndice(int id){
  54. return id >= 0 && id < this.id;
  55. }
  56.  
  57. /**
  58. * Metodo que establece tareas completadas o sin completar.
  59. * Metodo a prueba de errores.
  60. * El id de las tarea empieza en cero hasta el 89.
  61. */
  62. public void marcarComoCompletada(int id){
  63. if (esValidoElIndice(id)){
  64. listaDeTareas.get(id).marcarFinalizada();
  65. }
  66. }
  67.  
  68. /**
  69. * Muestra todas las tareas (una por linea) que contengan un determinado texto
  70. * pasado como parametro con su numeracion asociada correcta. si no hay ninguna
  71. * tarea que contenga el texto indicado, se muestra ¡un mensaje de error!.
  72. * Si hay tareas coincidentes, tras la lista, se muestra el numero
  73. * de tareas coincidentes.
  74. */
  75.  
  76. public void mostrarTareasCoincidentes(String textoBuscar){
  77. int contador = 1;
  78. while(contador > 0 && contador <= listaDeTareas.size()){
  79. if (listaDeTareas.get(contador - 1).mostrarTarea().contains(textoBuscar)){
  80. System.out.println((contador) + ". "
  81. + listaDeTareas.get(contador - 1).toString());
  82. }
  83. contador++;
  84. }
  85. }
  86.  
  87. /**
  88. * Metodo que permite borrar tareas de forma permanente.
  89. * La posicion se da a partir del 1
  90. */
  91. public void removerTarea(int id){
  92. if (esValidoElIndice(id)) {
  93. listaDeTareas.remove(id);
  94. }
  95. }
  96.  
  97. /**
  98. * Metodo que nos permite establecer la prioridad a una tarea.
  99. * 0 Prioridad baja.
  100. * 5 Prioridad alta.
  101. */
  102. public void cambiarPrioridad(int id, int prioridad){
  103. if (esValidoElIndice(id)) {
  104. listaDeTareas.get(id).setPrioridad(prioridad);
  105. }
  106. }
  107.  
  108. public void establecerFechaVencimiento(int id, int anio, int mes, int dia){
  109. if (esValidoElIndice(id)) {
  110. listaDeTareas.get(id).setFechaVencimiento(anio, mes, dia);
  111. }
  112. }
  113.  
  114. /**
  115. * Metodo que muestra por pantalla si hay tareas para vencer en la fecha actual
  116. */
  117. public void mostrarHoy(){
  118. int posicion = 1;
  119. LocalDate hoy = LocalDate.now();
  120. for (Tarea tarea : listaDeTareas){
  121. if (tarea.getFechaVencimiento() != null){
  122. if (tarea.getFechaVencimiento().isEqual(hoy)) {
  123. System.out.println(tarea.toString());
  124. posicion++;
  125. }
  126. }
  127. }
  128. }
  129.  
  130. /**
  131. * Metodo que muestra las tareas ya vencidas antes de la fecha de hoy
  132. */
  133. public void mostrarVencidas(){
  134. int posicion = 1;
  135. LocalDate hoy = LocalDate.now();
  136. for (Tarea tarea : listaDeTareas){
  137. if (tarea.getFechaVencimiento() != null){
  138. if (tarea.getFechaVencimiento().isBefore(hoy)) {
  139. System.out.println(tarea.toString());
  140. posicion++;
  141. }
  142. }
  143. }
  144. }
  145.  
  146. /**
  147. * Metodo que muestra la tarea con la más alta prioridad.
  148. * Si hay varias tareas con la misma priodad, debe mostrar todas las tareas.
  149. */
  150.  
  151. /**public void verTareaMasPrioritaria()
  152. {
  153. int i = 0;
  154. int buscarPrioridad = 5;
  155. boolean localizado = false;
  156. Tarea tareaLocal = new Tarea("");
  157. while(buscarPrioridad >= 0 && !localizado){
  158. while(i < listaDeTareas.size()){
  159. tareaLocal = listaDeTareas.get(i);
  160. if(tareaLocal.getPrioridad() == buscarPrioridad){
  161. System.out.println((i + 1) + " " + tareaLocal.toString());
  162. localizado = true;
  163. }
  164. i++;
  165.  
  166. }
  167. i = 0;
  168. buscarPrioridad--;
  169. }
  170. }*/
  171.  
  172. /**
  173. * Muestra la tarea con mayor prioridad.
  174. * En caso de que haya dos o mas tareas con la misma prioridad muestra solo la
  175. * última tarea.
  176. */
  177. public void verTareaMasPrioritaria2()
  178. {
  179. if(listaDeTareas.size() > 0){
  180. int prioridadMaxima = listaDeTareas.get(0).getPrioridad();
  181. Tarea tareaGuardada = listaDeTareas.get(0);
  182. int index = 1;
  183. int indexGuardado = index;
  184. for(Tarea tarea : listaDeTareas){
  185. if(tarea.getPrioridad() >= prioridadMaxima){
  186. tareaGuardada = tarea;
  187. prioridadMaxima = tarea.getPrioridad();
  188. indexGuardado = index;
  189. }
  190. index++;
  191. }
  192. System.out.println(indexGuardado + " " + tareaGuardada.toString());
  193. }
  194. }
  195.  
  196. /**
  197. * Metodo que nos permite localizar la tarea mas antigua que aun esta pendiente.
  198. * En caso de que no haya tarea sin completar devuelve -1.
  199. */
  200. public int tareaMasViejaPendiente(){
  201. int idEncontrado = -1;
  202. int index = 0;
  203. boolean buscando = true;
  204. while (index < listaDeTareas.size() && buscando){
  205. Tarea tareaActual = listaDeTareas.get(index);
  206. if (!(tareaActual.mostrarFinalizada())){
  207. idEncontrado = tareaActual.getId();
  208. buscando = false;
  209. }
  210. index ++;
  211. }
  212.  
  213. return idEncontrado;
  214. }
  215.  
  216. /**
  217. * Devuelve el numero de tareas sin terminar
  218. */
  219. public int numeroTareasSinTerminar(){
  220. int tareasEncontradas = 0;
  221. int index = 0;
  222. while (index < listaDeTareas.size()){
  223. Tarea tareaActual = listaDeTareas.get(index);
  224. if (!(tareaActual.mostrarFinalizada())){
  225. tareasEncontradas++;
  226. }
  227. index ++;
  228. }
  229.  
  230. return tareasEncontradas;
  231. }
  232.  
  233. /**
  234. * Metodo que devuelve true si hay tareas duplicadas, y false si no las hay.
  235. */
  236. public boolean hayTareasDuplicadas(){
  237. boolean tareasDuplicadas = false;
  238. String tareaABuscar = "";
  239. int cont1 = 0;
  240. int cont2 = 0;
  241. while (cont1 < listaDeTareas.size()){
  242. tareaABuscar = listaDeTareas.get(cont1).mostrarTarea();
  243. while(cont2 < listaDeTareas.size()){
  244. String tareaAComparar = listaDeTareas.get(cont2).mostrarTarea();
  245. if(tareaABuscar == tareaAComparar && cont1 != cont2){
  246. tareasDuplicadas = true;
  247. }
  248. cont2++;
  249. }
  250. cont1++;
  251. cont2 = 0;
  252. }
  253.  
  254. return tareasDuplicadas;
  255. }
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement