Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/10/2013, 12:00
Avatar de ninga
ninga
 
Fecha de Ingreso: diciembre-2011
Ubicación: Mexico
Mensajes: 19
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta Duda sobre compara meses

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 original
  1. public class CFecha {
  2.     //Atributos
  3.  
  4.     private int dia, mes, anio;
  5.     private String nmes;
  6.  
  7.     /**
  8.      * Contructor por omision
  9.      * <br>Contructor que permite definir una fecha valida
  10.      */
  11.     public CFecha() {
  12.         dia = 1;
  13.         mes = 1;
  14.         anio = 1900;
  15.     }
  16.  
  17.     /**
  18.      * Contructor que recibe parametros
  19.      * <br>Permite definir una fecha a partir de enteros
  20.      *
  21.      * @param dia - Recibe un entero como dia de una fecha
  22.      * @param mes - Rebice un enterro como mes de una fecha
  23.      * @param anio - Recibe un entero como año de una fecha
  24.      */
  25.     public CFecha(int d, int m, int a) {
  26.         if (esAnioBisiesto(a) && m == 2 && (d < 1 || d > 29)) {
  27.             System.out.println("Dia invalido para \"Febrero\" ya que es un a\u00f1o");
  28.             System.exit(0);
  29.         }
  30.         if (m == 2 && (d < 1 || d > 28)) {
  31.             System.out.println("Dia invalido para febrero");
  32.             System.exit(0);
  33.         }
  34.         if (d < 0 || d > 31) {
  35.             System.out.println("Dia invalido no se creo la fecha");
  36.             System.exit(0);
  37.         }
  38.         if (a < 1800 || a > 3000) {
  39.             System.out.println("A\u00f1o invalido");
  40.             System.exit(0);
  41.         }
  42.         if (m > 12 || m < 1) {
  43.             System.out.println("Mes invalido");
  44.             System.exit(0);
  45.         }
  46.         dia = d;
  47.         mes = m;
  48.         anio = a;
  49.     }
  50.     /**
  51.      * Contructor que recibe parametros
  52.      * <br>Permite definir una fecha a partir de enteros y una cadena para el
  53.      * nombre del mes
  54.      *
  55.      * @param dia - Recibe un entero como dia de una fecha
  56.      * @param nmes - Recibe una cadena como mes de una fecha
  57.      * @param anio - Recibe un entero como año de una fecha
  58.      */
  59.     public CFecha(int d,String m,int a){
  60.          if (esAnioBisiesto(a) && m.equals("Febrero") && (d < 1 || d > 29)) {
  61.             System.out.println("Dia invalido para \"Febrero\" ya que es un a\u00f1o");
  62.             System.exit(0);
  63.         }
  64.         if (m.equals("Febrero") && (d < 1 || d > 28)) {
  65.             System.out.println("Dia invalido para febrero");
  66.             System.exit(0);
  67.         }
  68.         if (d < 0 || d > 31) {
  69.             System.out.println("Dia invalido no se creo la fecha");
  70.             System.exit(0);
  71.         }
  72.         if (a < 1800 || a > 3000) {
  73.             System.out.println("A\u00f1o invalido");
  74.             System.exit(0);
  75.         }
  76.         if (m > "Diciembre" || m < "Enero") {
  77.             System.out.println("Mes invalido");
  78.             System.exit(0);
  79.         }
  80.         dia = d;
  81.         nmes = m;
  82.         anio = a;
  83.     }
  84. }

Si me ayudan se los agradecere