Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.44 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Iterator;
  3. import java.time.LocalDate;
  4. /**
  5. * Clase que crea colecciones que almacenan objetos de tipo Tarea.
  6. */
  7. public class ListaTareas
  8. {
  9. // Colección que almacena objetos de la clase Tarea.
  10. private ArrayList<Tarea> listaDeTareas;
  11. // Almacena el id para la siguiente tarea.
  12. private int id;
  13.  
  14. /**
  15. * Constructor for objects of class ListaTareas
  16. */
  17. public ListaTareas()
  18. {
  19. listaDeTareas = new ArrayList<Tarea>();
  20. id = 0;
  21. }
  22.  
  23. /**
  24. * Añade una tarea nueva a la coleccion listaDeTareas.
  25. */
  26. public void addTarea(String tarea)
  27. {
  28. if(id < 89){
  29. Tarea nuevaTarea = new Tarea(tarea, id);
  30. listaDeTareas.add(nuevaTarea);
  31. id++;
  32. }
  33. }
  34.  
  35. /**
  36. * Permite ver todas las tareas numeradas
  37. * empezando en 1 pudiendo ver si estan
  38. * completadas o no.
  39. */
  40. public void verTareasNumeradas()
  41. {
  42. Iterator<Tarea> it = listaDeTareas.iterator();
  43. while(it.hasNext()){
  44. Tarea tarea = it.next();
  45. System.out.println(tarea.toString());
  46. }
  47. }
  48.  
  49. /**
  50. * Permite fijar una tarea como hecha
  51. * indicando la posición de la misma.
  52. */
  53. public void setTareaHecha(int id)
  54. {
  55. int comprobanteId = esValidoElId(id);
  56. if(comprobanteId != -1){
  57. listaDeTareas.get(comprobanteId).setTareaHecha();
  58. }
  59. }
  60.  
  61. ///**
  62. // * Comprueba si un indice es valido.
  63. // */
  64. //public boolean esValidoElIndice(int id)
  65. //{
  66. // return id >= 0 && id < this.id && !idEliminado.contains(String.valueOf(id));
  67. //}
  68.  
  69. /**
  70. * Mostrar todas las tareas cuyo
  71. * nombre contenga un determinado texto.
  72. */
  73. public void mostrarTareasCoincidentes(String texto)
  74. {
  75. int numeroCabecera = 1;
  76. int tareasCoincidentes = 0;
  77. Iterator<Tarea> it = listaDeTareas.iterator();
  78. while(it.hasNext()){
  79. Tarea tarea = it.next();
  80. if(tarea.getNombreTarea().contains(texto)){
  81. System.out.println(numeroCabecera + " " + tarea.toString());
  82. tareasCoincidentes++;
  83. }
  84. numeroCabecera++;
  85. }
  86. if(tareasCoincidentes == 0){
  87. System.out.println("Error, no hay coincidencias.");
  88. }
  89. else{
  90. System.out.println("Tareas coincidentes: " + tareasCoincidentes);
  91. }
  92. }
  93.  
  94. /**
  95. * Elimina una tarea indicando su numero.
  96. */
  97. public void eliminarTarea(int id)
  98. {
  99. int comprobanteId = esValidoElId(id);
  100. if(comprobanteId != -1){
  101. listaDeTareas.remove(comprobanteId);
  102. }
  103. }
  104.  
  105. /**
  106. * Fija la prioridad de una tarea.
  107. */
  108. public void setPrioridad(int id, int prioridad)
  109. {
  110. int comprobanteId = esValidoElId(id);
  111. if(comprobanteId != -1){
  112. listaDeTareas.get(comprobanteId).setPrioridad(prioridad);
  113. }
  114. }
  115.  
  116. /**
  117. * Se muestra por pantalla todos los elementos
  118. * de la colección ordenados de mayor a menor prioridad.
  119. */
  120. public void tareasOrdenadas()
  121. {
  122. int i = 0;
  123. int buscarPrioridad = 5;
  124. Tarea tareaLocal;
  125. while(buscarPrioridad >= 0){
  126. while(i < listaDeTareas.size()){
  127. tareaLocal = listaDeTareas.get(i);
  128. if(tareaLocal.getPrioridad() == buscarPrioridad){
  129. System.out.println(tareaLocal);
  130. }
  131. i++;
  132. }
  133. i = 0;
  134. buscarPrioridad--;
  135. }
  136. }
  137.  
  138. /**
  139. * Fija la fecha de vencimiento de una tarea.
  140. */
  141. public void fijarFechaVencimiento(int id, int dia, int mes, int anyo)
  142. {
  143. int comprobanteId = esValidoElId(id);
  144. if(comprobanteId != -1){
  145. listaDeTareas.get(comprobanteId).fijarFechaVencimiento(dia, mes, anyo);
  146. }
  147. }
  148.  
  149. /**
  150. * Muestra por pantalla el listado de
  151. * tareas con fecha de vencimiento hoy.
  152. */
  153. public void mostrarHoy()
  154. {
  155. int index = 0;
  156. LocalDate ahora = LocalDate.now();
  157. Iterator<Tarea> it = listaDeTareas.iterator();
  158. while(it.hasNext()){
  159. Tarea tarea = it.next();
  160. if(tarea.devolverFechaVencimiento() != null){
  161. if(tarea.devolverFechaVencimiento().isEqual(ahora)){
  162. System.out.println((index + 1) + " " + tarea.toString());
  163. }
  164. }
  165. index++;
  166. }
  167. }
  168.  
  169. /**
  170. * Muestra por pantallas el listado
  171. * de tareas con fechas vencidas.
  172. */
  173. public void mostrarVencidas()
  174. {
  175. int index = 0;
  176. LocalDate ahora = LocalDate.now();
  177. Iterator<Tarea> it = listaDeTareas.iterator();
  178. while(it.hasNext()){
  179. Tarea tarea = it.next();
  180. if(tarea.devolverFechaVencimiento() != null){
  181. if(tarea.devolverFechaVencimiento().isBefore(ahora)){
  182. System.out.println((index + 1) + " " + tarea.toString());
  183. }
  184. }
  185. index++;
  186. }
  187. }
  188.  
  189. /**
  190. * Muestra la tarea con mas alta prioridad,
  191. * si hay varias empatadas muestra todas.
  192. */
  193. public void verTareaMasPrioritaria()
  194. {
  195. int i = 0;
  196. int buscarPrioridad = 5;
  197. boolean encontrado = false;
  198. Tarea tareaLocal;
  199. while(buscarPrioridad >= 0 && !encontrado){
  200. while(i < listaDeTareas.size()){
  201. tareaLocal = listaDeTareas.get(i);
  202. if(tareaLocal.getPrioridad() == buscarPrioridad){
  203. System.out.println((i + 1) + " " + tareaLocal.toString());
  204. encontrado = true;
  205. }
  206. i++;
  207. }
  208. i = 0;
  209. buscarPrioridad--;
  210. }
  211. }
  212.  
  213. /**
  214. * Muestra la tarea con mayor prioridad.
  215. * En caso de empate muestra solo la ultima.
  216. */
  217. public void verTareaMasPrioritaria2()
  218. {
  219. if(listaDeTareas.size() > 0){
  220. int prioridadMaxima = listaDeTareas.get(0).getPrioridad();
  221. Tarea tareaGuardada = listaDeTareas.get(0);
  222. for(Tarea tarea : listaDeTareas){
  223. if(tarea.getPrioridad() >= prioridadMaxima){
  224. tareaGuardada = tarea;
  225. prioridadMaxima = tarea.getPrioridad();
  226. }
  227. }
  228. System.out.println(tareaGuardada);
  229. }
  230. }
  231.  
  232. /**
  233. * Devuelve la posicion dentro del ArrayList
  234. * de la tarea con el id que se ha pasado por
  235. * parametro, o -1 en caso de que no exista
  236. * ninguna tarea con dicho id.
  237. */
  238. public int esValidoElId(int id)
  239. {
  240. int index = 0;
  241. int indexGuardado = -1;
  242. for(Tarea tarea : listaDeTareas){
  243. if(tarea.getId() == id){
  244. indexGuardado = index;
  245. }
  246. index++;
  247. }
  248. return indexGuardado;
  249. }
  250.  
  251. /**
  252. * Devuelve el id de la tarea mas antigua
  253. * de nuestra lista que aun no esta completada.
  254. */
  255. public int tareaMasViejaPendiente()
  256. {
  257. int index = 0;
  258. int id = -1;
  259. boolean buscando = true;
  260. while(index < listaDeTareas.size() && buscando){
  261. if(!listaDeTareas.get(index).getTareaHecha()){
  262. buscando = false;
  263. id = listaDeTareas.get(index).getId();
  264. }
  265. index++;
  266. }
  267. return id;
  268. }
  269.  
  270. /**
  271. * Devuelve el numero de tareas sin terminar.
  272. */
  273. public int numeroTareasSinTerminar()
  274. {
  275. int contador = 0;
  276. for(Tarea tarea : listaDeTareas){
  277. if(!tarea.getTareaHecha()){
  278. contador++;
  279. }
  280. }
  281. return contador;
  282. }
  283.  
  284. /**
  285. * Devuelve true en caso de que haya dos tareas
  286. * con la misma descripcion o false en caso contrario.
  287. */
  288. public boolean hayTareasDuplicadas()
  289. {
  290. boolean buscando = true;
  291. int indexAConsultar = 0;
  292. int indexConsultado = 1;
  293. while(buscando && indexAConsultar < listaDeTareas.size()){
  294. String consultando = listaDeTareas.get(indexAConsultar).getNombreTarea();
  295. while(buscando && indexConsultado < listaDeTareas.size()){
  296. if(consultando.equals(listaDeTareas.get(indexConsultado).getNombreTarea())){
  297. buscando = false;
  298. }
  299. indexConsultado++;
  300. }
  301. indexAConsultar++;
  302. indexConsultado = indexAConsultar + 1;
  303. }
  304. return !buscando;
  305. }
  306. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement