Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.97 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 (Cristian)
  7. * @version (16.01.17)
  8. */
  9. public class ListaTareas
  10. {
  11. private ArrayList<Tarea> listaDeTareas;
  12. private int proximoId;
  13.  
  14. public ListaTareas()
  15. {
  16. listaDeTareas = new ArrayList<Tarea>();
  17. proximoId = 10;
  18.  
  19. }
  20.  
  21. /**
  22. * Metodo que permite añadir una tarea a nuestra lista de tareas pasandole por parametro la descripcion de esa tarea que queremos añadir
  23. */
  24. public void aniadirTarea(String descripcionTarea)
  25. {
  26. Tarea tarea = new Tarea(descripcionTarea, proximoId);
  27. listaDeTareas.add(tarea);
  28. if (tarea.getId() >= 10 && tarea.getId() <= 99) {
  29. proximoId = proximoId + 1;
  30.  
  31. }
  32.  
  33. }
  34.  
  35. /**
  36. * Metodo que mustra por pantalla todas las tareas que tenemos creadas
  37. */
  38. public void mostrarTareas()
  39. {
  40. int posicion = 1;
  41. for (Tarea tarea : listaDeTareas) {
  42. System.out.println(tarea);
  43. posicion++;
  44. }
  45. }
  46.  
  47. /**
  48. * 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
  49. */
  50. public void marcarComoCompletada(int proximoId)
  51. {
  52. for (Tarea tarea : listaDeTareas){
  53. if(proximoId == tarea.getId()){
  54. tarea.marcarComoCompletada();
  55. }
  56. }
  57. }
  58.  
  59. /**
  60. * Metodo que muestra las coincidencias de las tareas con un texto que nosotros le pasamos por parametro
  61. */
  62. public void mostrarCoincidentes(String textoABuscar)
  63. {
  64. int posicion = 0;
  65. while (posicion < listaDeTareas.size()) {
  66. Tarea tareaActual = listaDeTareas.get(posicion);
  67. if (tareaActual.getDescripcion().contains(textoABuscar)) {
  68. System.out.println((posicion + 1) + tareaActual.toString());
  69. }
  70. posicion++;
  71. }
  72. }
  73.  
  74. /**
  75. * 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
  76. */
  77. public void eliminarTarea(int proximoId)
  78. {
  79. int posicionReal = getPosicionById(proximoId);
  80. if (posicionReal != -1){
  81. listaDeTareas.remove(posicionReal);
  82. }
  83. }
  84.  
  85. public void establecerNuevaPrioridad (int proximoId , int prioridad){
  86. for(Tarea tarea : listaDeTareas){
  87. if (proximoId == tarea.getId()){
  88. if(prioridad >= 0 && prioridad <= 5){
  89. tarea.cambiarPrioridad(prioridad);
  90. }
  91. }
  92. }
  93.  
  94. }
  95.  
  96. public void setFechaVencimiento(int proximoId, int anio, int mes, int dia)
  97. {
  98. for (Tarea tarea : listaDeTareas){
  99. if (proximoId == tarea.getId()){
  100. tarea.establecerFechaVencimiento(anio, mes, dia);
  101. }
  102. }
  103. }
  104.  
  105. /**
  106. * Metodo que muestra por pantalla el listado de tareas con feche de vencimiento hoy. Si no hya ninguna, el listado debe aparecer vacio
  107. */
  108. public void mostrarHoy()
  109. {
  110. int posicion = 1;
  111. LocalDate hoy = LocalDate.now();
  112. for (Tarea tarea : listaDeTareas) {
  113. if (tarea.getFechaVencimiento() != null){
  114. if(tarea.getFechaVencimiento().isEqual(hoy)){
  115.  
  116. System.out.println(posicion + ". " + tarea.toString());
  117. }
  118. }
  119. posicion++;
  120. }
  121.  
  122. }
  123.  
  124. /**
  125. * Metodo que muestre por pantalla el listado de tareas vencidas. Si no hya ninguna , no sale nada por pantalla
  126. */
  127. public void mostrarVencidas ()
  128. {
  129. int posicion = 1;
  130. LocalDate hoy = LocalDate.now();
  131. for (Tarea tarea : listaDeTareas) {
  132. if (tarea.getFechaVencimiento() != null){
  133. if(tarea.getFechaVencimiento().isBefore(hoy)){
  134.  
  135. System.out.println(posicion + ". " + tarea.toString());
  136. }
  137. }
  138. posicion++;
  139. }
  140. }
  141.  
  142. /**
  143. * Metodo que muestra por pantalla la tarea con la mas alta prioridad. Si hay varias empatadas, debe mostrar todas las empatadas
  144. */
  145. public void verTareaMasPrioritaria()
  146. {
  147. int prioridadMax = 0;
  148. for (Tarea tarea : listaDeTareas){
  149. if (prioridadMax < tarea.getPrioridad()){
  150. prioridadMax = tarea.getPrioridad();
  151.  
  152. }
  153. }
  154. int posicion = 0;
  155. while (posicion < listaDeTareas.size()){
  156. Tarea tareaActual = listaDeTareas.get(posicion);
  157. if (tareaActual.getPrioridad() == prioridadMax){
  158. System.out.println((posicion + 1) + ". " + tareaActual.toString());
  159.  
  160. }
  161. posicion ++;
  162.  
  163. }
  164. }
  165.  
  166. /**
  167. * Metodo que mustra por pantalla la tarea con la prioridad mas alta. En caso de empate, muestra solo la ultima tarea
  168. */
  169. public void verTareaMasPrioritaria2()
  170. {
  171. if (listaDeTareas.size() > 0) {
  172. Tarea tareaMasPrioritaria = listaDeTareas.get(0);
  173.  
  174. for (Tarea tareaActual : listaDeTareas){
  175. if (tareaActual.getPrioridad() >= tareaMasPrioritaria.getPrioridad()){
  176. tareaMasPrioritaria = tareaActual;
  177.  
  178. }
  179.  
  180. }
  181. System.out.println(tareaMasPrioritaria);
  182. }
  183.  
  184. }
  185.  
  186. /**
  187. * 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
  188. */
  189. public int getPosicionById(int idBuscada){
  190. int posicionBuscada = -1;
  191. int posicionActual = 0;
  192. boolean buscando = true;
  193. while ( (posicionActual < listaDeTareas.size()) && (buscando)){
  194. if (listaDeTareas.get(posicionActual).getId() == idBuscada){
  195. posicionBuscada = posicionActual;
  196. buscando = false;
  197. }
  198. posicionActual++;
  199. }
  200. return posicionBuscada;
  201. }
  202. /**
  203. * 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
  204. */
  205. public int tareaMasVIeja(){
  206. int idADevolver = -1;
  207. int index = 0;
  208. boolean buscando = true;
  209. while (index < listaDeTareas.size() && buscando){
  210. Tarea tareaActual = listaDeTareas.get(index);
  211. if (!(tareaActual.estaTerminada())) {
  212. idADevolver = tareaActual.getId();
  213. buscando = false;
  214.  
  215. }
  216.  
  217. index ++;
  218. }
  219. return idADevolver;
  220. }
  221. /**
  222. * Metodo que devuelve el numero de tareas que esta sin terminar
  223. */
  224. public int numeroTareasSinTerminar(){
  225. int tareasPendientes = 0;
  226. int posicion = 0;
  227. while ( posicion < listaDeTareas.size()){
  228. Tarea tareaActual = listaDeTareas.get(posicion);
  229. if (!(tareaActual.estaTerminada())){
  230. tareasPendientes++;
  231.  
  232. }
  233.  
  234. posicion++;
  235.  
  236. }
  237.  
  238. return tareasPendientes;
  239.  
  240. }
  241. /**
  242. * 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
  243. */
  244. public boolean hayTareasDuplicadas(){
  245. boolean duplicadas = false;
  246. int posicion = 0;
  247. boolean buscando = true;
  248. int index = 1;
  249. while ( posicion < listaDeTareas.size() && (buscando)){
  250. Tarea tareaUno = listaDeTareas.get(posicion);
  251. while ( index < listaDeTareas.size() && (buscando)){
  252. Tarea tareaDos = listaDeTareas.get(index);
  253. if (tareaUno.getDescripcion() == tareaDos.getDescripcion()){
  254. duplicadas = true;
  255. buscando = false;
  256.  
  257. }
  258. index ++;
  259. }
  260. posicion++;
  261. index = posicion + 1;
  262. }
  263. return duplicadas;
  264.  
  265. }
  266. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement