Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.96 KB | None | 0 0
  1. /**
  2. * Write a description of class ListaTareas here.
  3. *
  4. * @author (Marcos)
  5. * @version (1.13)
  6. */
  7. import java.util.*;
  8. import java.time.*;
  9.  
  10. public class ListaTareas
  11. {
  12. //Crea la lista de tareas.
  13. private ArrayList<Tarea> listaTareas;
  14. private LocalDate diaHoy;
  15. private int idTareas;
  16.  
  17. /**
  18. * Constructor de la clase que inicializa la lista de tareas.
  19. */
  20. public ListaTareas() {
  21. listaTareas = new ArrayList<Tarea>();
  22. diaHoy = LocalDate.now();
  23. idTareas = 10;
  24. }
  25.  
  26. /**
  27. * Añadimos la tarea a nuestra lista.
  28. */
  29. public void nuevaTarea(String nombre) {
  30. if (idTareas < 99){
  31. Tarea miTarea = new Tarea(nombre, idTareas);
  32. listaTareas.add(miTarea);
  33. idTareas ++;
  34. }
  35.  
  36. }
  37.  
  38. /**
  39. * Muestra nuestra lista de tareas numeradas
  40. */
  41. public void mostrarTareas() {
  42. //Variable para indicar el numero de tarea desde el punto del usuario.
  43. for (Tarea tarea:listaTareas){
  44. System.out.println(tarea.toString());
  45. }
  46. }
  47.  
  48. /**
  49. * Marcamos la tarea indicada por su numero de usuario como hecha
  50. */
  51. public void marcarHecha(int idDeTarea) {
  52. int numeroDeTarea = getPosicion(idDeTarea);
  53. if (numeroDeTarea >= 0 && numeroDeTarea <= listaTareas.size()) {
  54. listaTareas.get(numeroDeTarea).tareaHecha();
  55. }
  56. }
  57.  
  58. /**
  59. * Este metodo nos muestra todas las tareas que contengan un determinado texto.
  60. */
  61. public void buscarTarea(String texto) {
  62. boolean coincidencia = false;
  63. for (Tarea tarea:listaTareas){
  64. if(tarea.nombre().contains(texto)) {
  65. System.out.println(tarea.toString());
  66. coincidencia = true;
  67. }
  68. }
  69.  
  70. if(coincidencia = false) {
  71. System.out.println("No hay tareas que contengan este texto.");
  72. }
  73. }
  74.  
  75. /**
  76. * Este metodo nos permite eliminar tarea que le indiquemos segun su posicion de usuario.
  77. */
  78. public void eliminarTarea(int idTarea) {
  79. int posicionTarea = getPosicion(idTarea);
  80. //Este if nos permite controlar que el parametro introducido es valido.
  81. if(posicionTarea >= 0 && posicionTarea < listaTareas.size()){
  82. listaTareas.remove(posicionTarea);
  83. }
  84. }
  85.  
  86. /**
  87. * Este metodo nos permite cambiar la prioridad de una tarea ya creada
  88. * de nuestra lista de tareas
  89. */
  90. public void cambiarPrioridad (int idTarea, int prioridad) {
  91. int posicionTarea = getPosicion(idTarea);
  92. if(posicionTarea >= 0 && posicionTarea <= listaTareas.size()) {
  93. listaTareas.get(posicionTarea).establecerPrioridad(prioridad);
  94. }
  95. }
  96.  
  97. /**
  98. * Este metodo nos permite fija la fecha de vencimiento.
  99. */
  100. public void setFechaVencimiento(int idTarea, int anio, int mes, int dia)
  101. {
  102. int posicionReal = getPosicion(idTarea);
  103. if (posicionReal >= 0 && posicionReal <= listaTareas.size()){
  104. listaTareas.get(posicionReal).establecerFechaVencimiento(anio, mes, dia);
  105. }
  106. }
  107.  
  108. /**
  109. * Este metodo muestra las tareas que tengan la fecha de vencimiento del dia de hoy.
  110. */
  111. public void mostrarHoy() {
  112. for(Tarea tarea:listaTareas) {
  113. if(tarea.fechaDeVencimiento() != null){
  114. if(tarea.fechaDeVencimiento().isEqual(diaHoy)){
  115. System.out.println(tarea.toString());
  116. }
  117. }
  118. }
  119. }
  120.  
  121. /**
  122. * Este metodo nos muestra solo las tareas que tienen venciada su fecha.
  123. */
  124. public void mostrarVencidadas(){
  125. for(Tarea tarea:listaTareas) {
  126. if(tarea.fechaDeVencimiento() != null){
  127. if(tarea.fechaDeVencimiento().isBefore(diaHoy)){
  128. System.out.println(tarea.toString());
  129. }
  130. }
  131. }
  132. }
  133.  
  134. /**
  135. * Este metodo permite identificar la tarea prioritaria y mostrarla por pantalla.
  136. */
  137. public void verTareaPrioritaria(){
  138. int prioridad = 0;
  139. for(Tarea tarea:listaTareas) {
  140. if (tarea.getPrioridad() > prioridad){
  141. prioridad = tarea.getPrioridad();
  142. }
  143. }
  144.  
  145. for (Tarea tarea:listaTareas){
  146. if(tarea.getPrioridad() == prioridad){
  147. if(tarea.fechaDeVencimiento() == null) {
  148. System.out.println(tarea.toString());
  149. }
  150. }
  151. }
  152. }
  153.  
  154. /**
  155. * Este metodo muestra la ultima tarea prioritaria en caso de que haya dos iguales.
  156. */
  157. public void verTareaPrioritaria2() {
  158. if (listaTareas.size() > 0){
  159. Tarea tareaPrioritaria = listaTareas.get(0);
  160. for (Tarea tarea:listaTareas) {
  161. if(tarea.getPrioridad() >= tareaPrioritaria.getPrioridad()){
  162. tareaPrioritaria = tarea;
  163. }
  164. }
  165. System.out.println(tareaPrioritaria.toString());
  166. }
  167. }
  168.  
  169. /**
  170. * Este metodo nos permite obtener la posicion de un objeto tarea en funcion de su ID.Si no
  171. * encuentra ninguna devuelve -1 y un mensaje de advertencia.
  172. */
  173. private int getPosicion(int idTarea){
  174. int posicion = 0;
  175. int posicionReal = -1;
  176. boolean existe = false;
  177. while ((posicion < listaTareas.size()) && (existe == false)) {
  178. if (listaTareas.get(posicion).getId() == idTarea) {
  179. posicionReal = posicion;
  180. existe = true;
  181. }
  182. posicion ++;
  183. }
  184. if(existe == false){
  185. System.out.println("No existe la tarea.");
  186. }
  187. return posicionReal;
  188. }
  189.  
  190. public int tareaMasViejaPendiente(){
  191. boolean noHecha = false;
  192. int contador = 0;
  193. int idTareaPendiente = -1;
  194. while((noHecha == false) && (contador < listaTareas.size())){
  195. if(listaTareas.get(contador).estadoTarea().equals("HECHA") == false){
  196. idTareaPendiente = listaTareas.get(contador).getId();
  197. noHecha = true;
  198. }
  199. contador ++;
  200. }
  201. return idTareaPendiente;
  202. }
  203.  
  204. public int numeroTareasSinTerminar() {
  205. int tareas = 0;
  206. for(Tarea tarea:listaTareas) {
  207. if(tarea.estadoTarea().equals("HECHA")== false) {
  208. tareas ++;
  209. }
  210. }
  211. return tareas;
  212. }
  213.  
  214. public boolean hayTareasDuplicadas() {
  215. boolean duplicadas = false;
  216. int contador1 = 0;
  217. int contador2 = 0;
  218. while((duplicadas == false) && contador1 < listaTareas.size()) {
  219. String descripcion = listaTareas.get(contador1).nombre();
  220. while(contador2 < listaTareas.size() && (duplicadas == false)) {
  221. String descripcion2 = listaTareas.get(contador2).nombre();
  222. if(descripcion2 == descripcion && (contador1 != contador2)) {
  223. duplicadas = true;
  224. }
  225. contador2 ++;
  226. }
  227. contador1 ++;
  228. }
  229. return duplicadas;
  230. }
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement