lunes, 10 de febrero de 2014

Unidad 3: Ejercicio 7

/*
*
* 7. Dada la clase Fecha, hacer un programa en el que se declare un vector de
*
* 10 objetos de tipo Fecha (este vector almacenaría 10 fechas). 
* A la hora de crear el vector, todos sus elementos tienen que tener la fecha
* (1 de Abril de 2011).
* Asignarle a continuación a todas las fechas,
* valores generados de manera aleatoria. Por simplificar, todos los meses son
* de 30 días, y el año tiene que estar comprendido entre 2000 y 2008, ambos incluidos.
* Imprimir el contenido del vector, una vez generado, y una vez asignadas las nuevas fechas.
* Incrementar a continuación todas las fechas en 3 días, y volver a escribir el contenido del vector
* para comprobar que se hizo de manera correcta.

public class Fecha {
private int dia;
private int mes;
private int anyo;

public Fecha(int dia, int mes, int anyo) {
this.dia = dia;
this.mes = mes;
this.anyo = anyo;
}


public Fecha() {
dia = 1;
mes = 1;
anyo = 2013;
}

public void asignate(int dia, int mes, int anyo) {
this.dia = dia;
this.mes = mes;
this.anyo = anyo;
}

public int getDia() {
return dia;
}

public void setDia(int dia) {
this.dia = dia;
}

public int getMes() {
return mes;
}

public void setMes(int mes) {
this.mes = mes;
}

public int getAnyo() {
return anyo;
}

public void setAnyo(int anyo) {
this.anyo = anyo;
}

public void imprimete() {
System.out.println(dia + " - " + mesLetra() + " - " + anyo);
}

public void imprimete(int x) {
System.out.println(dia + " - " + mes + " - " + anyo);
}

private String mesLetra() {
String mesEnLetra = "";

switch (mes) {
case 1:
mesEnLetra = "Enero";
break;
case 2:
mesEnLetra = "Febrero";
break;
case 3:
mesEnLetra = "Marzo";
break;
case 4:
mesEnLetra = "Abril";
break;
case 5:
mesEnLetra = "Mayo";
break;
case 6:
mesEnLetra = "Junio";
break;
case 7:
mesEnLetra = "Julio";
break;
case 8:
mesEnLetra = "Agosto";
break;
case 9:
mesEnLetra = "Setiembre";
break;
case 10:
mesEnLetra = "Octubre";
break;
case 11:
mesEnLetra = "Noviembre";
break;
case 12:
mesEnLetra = "Diciembre";
break;
}
return mesEnLetra;
}

public void incrementate(int d) {
for (int i = 1; i <= d; i++) {
dia++;

switch (mes) {
case 1: // meses de 31 dias
case 3:
case 5:
case 7:
case 8:
case 10:

if (dia == 32) {
mes++;
dia = 1;
}
break;
case 12:
if (dia == 32) {
mes = 1;
dia = 1;
anyo++;
}
break;
case 4: // meses de 30 dias
case 6:
case 9:
case 11:
if (dia == 31) {
mes++;
dia = 1;
}
break;
case 2: // para anhos bisiestos
if (((anyo % 4 == 0) && (anyo % 100 != 0)) || (anyo % 400 == 0)) {
if (dia == 30) {
mes++;
dia = 1;
}
} else {
if (dia == 29) {
mes++;
dia = 1;
}
}
break;
}
}
}

public String getFecha() {
return dia + " - " + mesLetra() + " - " + anyo;
}
}

*/
package unidad3ejercicio7;
import java.util.Random;

/**
*
* @author Juan
*/
public class Unidad3Ejercicio7 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Fecha [] vectorFecha = new Fecha[10];
        Random aleatorio = new Random();
   
       
        for (int i = 0; i < vectorFecha.length; i++) {
            vectorFecha[i]=new Fecha(1,4,2011);
            }
        for (int i = 0; i < vectorFecha.length; i++) {
            vectorFecha[i].setDia(aleatorio.nextInt(30)+1);
            vectorFecha[i].setMes(aleatorio.nextInt(12)+1);
            vectorFecha[i].setAnyo(aleatorio.nextInt(9)+2000);
           
        }
       
        for (Fecha fecha : vectorFecha) {
            fecha.imprimete();
        }
       
        System.out.println("Incrementamos en tres días");
        for (int i = 0; i < vectorFecha.length; i++) {
            vectorFecha[i].incrementate(3);
           
        }
       
        for (Fecha fecha : vectorFecha) {
            fecha.imprimete();
        }
       
    }
}