Hola amigos disculpen las molestias pero tengo una duda, bueno tengo que crear un constructor que reciba el dia,mes y año, el dia y año son enteros, pero el mes tiene que recibir una cadena,
pero lo que no entiendo es como hacer que el usuario no pueda meter mas que los nombres de los meses y no otra cosa?, esto es lo que llevo:
Código Java:
Ver originalpublic class CFecha {
//Atributos
private int dia, mes, anio;
/**
* Contructor por omision
* <br>Contructor que permite definir una fecha valida
*/
public CFecha() {
dia = 1;
mes = 1;
anio = 1900;
}
/**
* Contructor que recibe parametros
* <br>Permite definir una fecha a partir de enteros
*
* @param dia - Recibe un entero como dia de una fecha
* @param mes - Rebice un enterro como mes de una fecha
* @param anio - Recibe un entero como año de una fecha
*/
public CFecha(int d, int m, int a) {
if (esAnioBisiesto(a) && m == 2 && (d < 1 || d > 29)) {
System.
out.
println("Dia invalido para \"Febrero\" ya que es un a\u00f1o"); }
if (m == 2 && (d < 1 || d > 28)) {
System.
out.
println("Dia invalido para febrero"); }
if (d < 0 || d > 31) {
System.
out.
println("Dia invalido no se creo la fecha"); }
if (a < 1800 || a > 3000) {
System.
out.
println("A\u00f1o invalido"); }
if (m > 12 || m < 1) {
System.
out.
println("Mes invalido"); }
dia = d;
mes = m;
anio = a;
}
/**
* Contructor que recibe parametros
* <br>Permite definir una fecha a partir de enteros y una cadena para el
* nombre del mes
*
* @param dia - Recibe un entero como dia de una fecha
* @param nmes - Recibe una cadena como mes de una fecha
* @param anio - Recibe un entero como año de una fecha
*/
public CFecha
(int d,
String m,
int a
){ if (esAnioBisiesto(a) && m.equals("Febrero") && (d < 1 || d > 29)) {
System.
out.
println("Dia invalido para \"Febrero\" ya que es un a\u00f1o"); }
if (m.equals("Febrero") && (d < 1 || d > 28)) {
System.
out.
println("Dia invalido para febrero"); }
if (d < 0 || d > 31) {
System.
out.
println("Dia invalido no se creo la fecha"); }
if (a < 1800 || a > 3000) {
System.
out.
println("A\u00f1o invalido"); }
if (m > "Diciembre" || m < "Enero") {
System.
out.
println("Mes invalido"); }
dia = d;
nmes = m;
anio = a;
}
}
Si me ayudan se los agradecere