Este blog está dedicado a la recolección de información relacionada con las nuevas tecnologías ( tecnoloxía xa), especialmente, con las vinculadas a la informática.
La idea es centralizar y compartir la información y cada manual o tutorial que voy recolectando para las clases tanto de administración de sistemas como de explotación de sistemas informáticos de modo que estén disponibles para alumnos y resto de interesados. (IES A Carballeira, Ourense)
Páginas
▼
viernes, 24 de enero de 2014
Unidad 2 Ejercicio 78: Fechas
80. Programar una clase de nombre Fecha que guarde una fecha como tres enteros privados de nombres dia, mes y anyo. Serían las propiedades de la clase.
Métodos de la clase:
- constructor que reciba 3 datos de tipo entero y se los asigne a los propiedades dia mes y anyo.
- constructor por defecto, que asigne la fecha: 1-1-2013.
- asignate(int,int,int): método que asigna valores a un objeto fecha. Se le pasan tres enteros que serán almacenados en las propiedades dia, mes y anyo.
- Métodos set y get para las propiedades de la clase.
- incrementate(int d): incrementa en d días la fecha.
- imprimete(): escribe la fecha en el formato: 5-Febrero-1010 (para los valores 5-2-2010)
- imprimete(int): método sobrecargado al que se le pasa como argumento un valor entero. En este caso el método escribirá la fecha con el formato: 5-02-2010.
- método privado de nombre mesLetra que devuelva el mes en letras asociado al mes numérico guardado en una determinada instancia (objeto) de la clase; este método será invocado desde imprímete.
- métodos de nombre getFecha con el mismo comportamiento que imprimete, pero que devuelvan un string que contenga la fecha en el formato adecuado.
Hacer un programa en el que se declaren objetos de la clase Fecha, y comprobar si el comportamiento de los métodos es el correcto.
package unidad2ejercicio78;
/**
*
* @author Juan
*/
public class Unidad2Ejercicio78 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Fecha unDia = new Fecha();
Fecha dDia = new Fecha(5,5,2025);
/**
* Asigna la fecha que le pasemos en los parámetros y/o la fecha 1-1-2013
* en caso de error
* @param dia
* actualiza la propiedad día del objeto fecha
* @param mes
* @param anyo
*/
public void asignate (int dia, int mes, int anyo)
{
if (dia<=31 && dia > 0 && mes>0 && mes < 13 )
{
this.dia = dia;
this.mes = mes;
this.anyo = anyo;
}
else
{
this.dia = 1;
this.mes = 1;
this.anyo = 2013;
}
}
/**
*
* @return
*/
public int getAnyo() {
return anyo;
}
/**
*
* @return
*/
public int getDia() {
return dia;
}
/**
*
* @param dia
*/
public void setDia(int dia) {
if (dia<=31 && dia > 0)this.dia = dia;
else this.dia=1;
}
/**
*
* @return
*/
public int getMes() {
return mes;
}
/**
*
* @param mes
*/
public void setMes(int mes) {
if (mes>0 && mes < 13 )this.mes = mes;
else this.mes = 1;
}
/**
*
* @return
*/
public String mesLetra(){
String mesdev;
switch (mes) {
case 1:
mesdev="Enero";
break;
case 2:
mesdev="Febrero";
break;
case 3:
mesdev="Marzo";
break;
case 4:
mesdev="Abril";
break;
case 5:
mesdev="Mayo";
break;
case 6:
mesdev="Junio";
break;
case 7:
mesdev="Julio";
break;
case 8:
mesdev="Agosto";
break;
case 9:
mesdev="Septiembre";
break;
case 10:
mesdev="Octubre";
break;
case 11:
mesdev="Noviembre";
break;
case 12:
mesdev="Diciembre";
break;
default:
throw new AssertionError();
}
public void incrementate2(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;
}
}
}
No hay comentarios:
Publicar un comentario
Muchas gracias por tu comentario, sed respetuosos con los demás.
gracias