Lo que pasa es que venía como ejemplo de composición en mi libro, pero al ejecutarlo me da el siguiente error:
"Exception in tread ''main'' java.util.IllegalFormatConversionException: d != Fecha...
Los códigos fuente son:
Fecha.java
Código Java:
Ver originalpublic class Fecha
{
private int mes;
private int dia;
private int anio;
public Fecha(int elMes, int elDia, int elAnio)
{
mes = comprobarMes(elMes);
anio = elAnio;
dia = comprobarDia(elDia);
"Constructor de objeto Fecha para la fecha %s\n", this);
}
private int comprobarMes(int mesPrueba)
{
if(mesPrueba > 0 && mesPrueba <= 12)
return mesPrueba;
else
{
"Mes invalido (%d) se establecio en 1.", mesPrueba);
return 1;
}
}
private int comprobarDia(int diaPrueba)
{
int diaPorMes[] =
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if(diaPrueba > 0 && diaPrueba <= diaPorMes[mes])
return diaPrueba;
// Año bisiesto.
if(mes == 2 && diaPrueba == 29 && (anio % 400 == 0 || (anio % 4 == 0 && anio % 100 != 0)))
return diaPrueba;
System.
out.
printf("Dia invalido (%d) se esyablece en 1.", diaPrueba
); return 1;
}
{
return String.
format("%d/%d/%d", dia, mes, anio
); }
}
Empleado.java
Código Java:
Ver originalpublic class Empleado
{
private String apellidoPaterno
; private Fecha fechaNacimiento;
private Fecha fechaContratacion;
public Empleado
(String nombre,
String apellido, Fecha fechaDeNacimiento, Fecha fechaDeContratacion
) {
primerNombre = nombre;
apellidoPaterno = apellido;
fechaNacimiento = fechaDeNacimiento;
fechaContratacion = fechaDeContratacion;
}
{
return String.
format("%s, %s Contratado: %d Cumpleanios: %s",
apellidoPaterno, primerNombre, fechaContratacion, fechaNacimiento);
}
}
Y PruebaEmpleado.java (aquí está main)
Código Java:
Ver originalpublic class PruebaEmpleado
{
public static void main
(String args
[]) {
Fecha nacimiento = new Fecha(7, 24, 1949);
Fecha contratacion = new Fecha(3, 12, 1988);
Empleado empleado = new Empleado("Daniel", "Perez", nacimiento, contratacion);
}
}
Me podrían decir qué está mal? Por favor... no entiendo por qué da error. Muchas gracias de antemano.