Cambiar el formato de una fecha introducida


- Hacer un programa que acepte una fecha con el formato dd / mm / aaaa (día, mes, año) y el visualice en su formato normal (en letras). Pr ejemplo: 14/10/2007 -> 14 de octubre de 2007
 
  1.  import cs1.*;
  2.    import java.text.SimpleDateFormat;
  3.    import java.text.DateFormat;
  4.    import java.util.Date;
  5.  
  6.    public class ejerc6
  7.    {
  8.       public static void main (String[] args)
  9.       {
  10.       //Variables
  11.          String fecha, numeros = "0123456789";
  12.          int fechalarga = 0, dia, mes, any, numerodias;
  13.          char d1, d2, b1, b2, m1, m2, a1, a2, a3, a4;
  14.          boolean error, error2, error3;
  15.    
  16.       //Introduci—n de datos
  17.          System.out.print("\n Introduce una fecha con el siguiente formato: dd/mm/aaaa: ");
  18.          fecha = Keyboard.readString();
  19.        
  20.       //Especificaci—n de las variables con su posici—n
  21.          fechalarga = fecha.length();
  22.        
  23.          if (fechalarga != 10)
  24.          {
  25.             System.out.print("Error, la fecha no tiene longitud 10.");
  26.          }
  27.          else
  28.          {
  29.             b1 = fecha.charAt(2);
  30.             b2 = fecha.charAt(5);
  31.             if ((b1 != '/') || (b2 != '/'))
  32.             {
  33.                System.out.print( "La fecha no corresponde al formato dd/mm/aaaa");
  34.             }
  35.             else
  36.             {
  37.                d1 = fecha.charAt(0);
  38.                d2 = fecha.charAt(1);
  39.                b1 = fecha.charAt(2);
  40.                m1 = fecha.charAt(3);
  41.                m2 = fecha.charAt(4);
  42.                a1 = fecha.charAt(6);
  43.                a2 = fecha.charAt(7);
  44.                a3 = fecha.charAt(8);
  45.                a4 = fecha.charAt(9);
  46.                error = ((numeros.indexOf(d1) < 0) || (numeros.indexOf(d2) < 0) ||
  47.                         (numeros.indexOf(m1) < 0) || (numeros.indexOf(m2) < 0) ||
  48.                       (numeros.indexOf(a1) < 0) || (numeros.indexOf(a2) < 0) ||
  49.                       (numeros.indexOf(a3) < 0) || (numeros.indexOf(a4) < 0));
  50.                if (error)        
  51.                   System.out.print("La fecha no corresponde al formato dd/mm/aaaa");
  52.                else
  53.                {
  54.                   dia = Integer.valueOf(fecha.substring(0,2)).intValue();
  55.                   mes = Integer.valueOf(fecha.substring(3,5)).intValue();
  56.                   any = Integer.valueOf(fecha.substring(6)).intValue();
  57.                   System.out.println("\nDia: " + dia + " Mes: " + mes + " A–o: " + any);
  58.                
  59.                
  60.                //Verificaci—n de los dias del mes de febrero
  61.                   if ( ((any % 4 == 0) && !(any % 100 == 0)) || (any % 400 == 0) )
  62.                      numerodias = 29;
  63.                   else
  64.                      numerodias = 28;
  65.              
  66.                //Condiciones
  67.                   if (dia < 32) {
  68.                      if (mes == 2) {
  69.                         if (numerodias == 28 & dia <=28 ) {
  70.                            System.out.println( "La fecha es: " + dia + " de Febrero del a–o " + any );
  71.                         }
  72.                         if (numerodias == 29 & dia <=29 ) {
  73.                            System.out.println( "La fecha es: " + dia + " de Febrero del a–o " + any );    
  74.                         }
  75.                         else {
  76.                            System.out.println( "El dia introducido no existe en este mes" );
  77.                         }
  78.                    
  79.                      }
  80.                    
  81.                      else {
  82.                    
  83.                         switch (mes) {
  84.                      
  85.                            case 1 :
  86.                               if (dia <= 31) {
  87.                                  System.out.println( "La fecha es: " + dia + " de Enero del a–o " + any );
  88.                               }
  89.                               else {
  90.                                  System.out.println("El dia introducido es incorrecto" );
  91.                               }
  92.                               break;
  93.                            case 3 :
  94.                               if (dia <= 31) {
  95.                                  System.out.println( "La fecha es: " + dia + " de Marzo del a–o " + any );
  96.                               }
  97.                               else {
  98.                                  System.out.println("El dia introducido es incorrecto" );
  99.                               }
  100.                               break;
  101.                            case 4 :
  102.                               if (dia <= 30) {
  103.                                  System.out.println( "La fecha es: " + dia + " de Abril del a–o " + any );
  104.                               }
  105.                               else {
  106.                                  System.out.println("El dia introducido es incorrecto" );
  107.                               }
  108.                               break;
  109.                            case 5 :
  110.                               if (dia <= 31) {
  111.                                  System.out.println( "La fecha es: " + dia + " de Mayo del a–o " + any );
  112.                               }
  113.                               else {
  114.                                  System.out.println("El dia introducido es incorrecto" );
  115.                               }
  116.                               break;
  117.                            case 6 :
  118.                               if (dia <= 30) {
  119.                                  System.out.println( "La fecha es: " + dia + " de Junio del a–o " + any );
  120.                               }
  121.                               else {
  122.                                  System.out.println("El dia introducido es incorrecto" );
  123.                               }      
  124.                               break;
  125.                            case 7 :
  126.                               if (dia <= 31) {
  127.                                  System.out.println( "La fecha es: " + dia + " de Julio del a–o " + any );
  128.                               }
  129.                               else {
  130.                                  System.out.println("El dia introducido es incorrecto" );
  131.                               }
  132.                               break;
  133.                            case 8 :
  134.                               if (dia <= 31) {
  135.                                  System.out.println( "La fecha es: " + dia + " dd Agosto del a–o " + any );
  136.                               }
  137.                               else {
  138.                                  System.out.println("El dia introducido es incorrecto" );
  139.                               }
  140.                               break;
  141.                            case 9 :
  142.                               if (dia <= 30) {
  143.                                  System.out.println( "La fecha es: " + dia + " de Septembre del a–o " + any );
  144.                               }
  145.                               else {
  146.                                  System.out.println("El dia introducido es incorrecto" );
  147.                               }
  148.                               break;
  149.                            case 10 :
  150.                               if (dia <= 31) {
  151.                                  System.out.println( "La fecha es: " + dia + " de Octubre del a–o " + any );
  152.                               }
  153.                               else {
  154.                                  System.out.println("El dia introducido es incorrecto" );
  155.                               }
  156.                               break;
  157.                            case 11 :
  158.                               if (dia <= 30) {
  159.                                  System.out.println( "La fecha es: " + dia + " de Noviembre del a–o " + any );
  160.                               }
  161.                               else {
  162.                                  System.out.println("El dia introducido es incorrecto" );
  163.                               }      
  164.                               break;
  165.                            case 12 :
  166.                               if (dia <= 31) {
  167.                                  System.out.println( "La fecha es: " + dia + " de Diciembre del a–o " + any );
  168.                               }
  169.                               else {
  170.                                  System.out.println("El dia introducido es incorrecto" );
  171.                               }
  172.                               break;
  173.                            default : System.out.println( "El mes es incorrecto" );
  174.                               break;    
  175.                         }
  176.                      }
  177.                   }
  178.                   else {
  179.                      System.out.println( "El dia introducido es incorrecto" );
  180.                   }
  181.                }
  182.             }
  183.          }
  184.       }
  185.    }

No hay comentarios:

Publicar un comentario