- 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
- import cs1.*;
- import java.text.SimpleDateFormat;
- import java.text.DateFormat;
- import java.util.Date;
- public class ejerc6
- {
- public static void main (String[] args)
- {
- //Variables
- String fecha, numeros = "0123456789";
- int fechalarga = 0, dia, mes, any, numerodias;
- char d1, d2, b1, b2, m1, m2, a1, a2, a3, a4;
- boolean error, error2, error3;
- //Introduci—n de datos
- System.out.print("\n Introduce una fecha con el siguiente formato: dd/mm/aaaa: ");
- fecha = Keyboard.readString();
- //Especificaci—n de las variables con su posici—n
- fechalarga = fecha.length();
- if (fechalarga != 10)
- {
- System.out.print("Error, la fecha no tiene longitud 10.");
- }
- else
- {
- b1 = fecha.charAt(2);
- b2 = fecha.charAt(5);
- if ((b1 != '/') || (b2 != '/'))
- {
- System.out.print( "La fecha no corresponde al formato dd/mm/aaaa");
- }
- else
- {
- d1 = fecha.charAt(0);
- d2 = fecha.charAt(1);
- b1 = fecha.charAt(2);
- m1 = fecha.charAt(3);
- m2 = fecha.charAt(4);
- a1 = fecha.charAt(6);
- a2 = fecha.charAt(7);
- a3 = fecha.charAt(8);
- a4 = fecha.charAt(9);
- error = ((numeros.indexOf(d1) < 0) || (numeros.indexOf(d2) < 0) ||
- (numeros.indexOf(m1) < 0) || (numeros.indexOf(m2) < 0) ||
- (numeros.indexOf(a1) < 0) || (numeros.indexOf(a2) < 0) ||
- (numeros.indexOf(a3) < 0) || (numeros.indexOf(a4) < 0));
- if (error)
- System.out.print("La fecha no corresponde al formato dd/mm/aaaa");
- else
- {
- dia = Integer.valueOf(fecha.substring(0,2)).intValue();
- mes = Integer.valueOf(fecha.substring(3,5)).intValue();
- any = Integer.valueOf(fecha.substring(6)).intValue();
- System.out.println("\nDia: " + dia + " Mes: " + mes + " A–o: " + any);
- //Verificaci—n de los dias del mes de febrero
- if ( ((any % 4 == 0) && !(any % 100 == 0)) || (any % 400 == 0) )
- numerodias = 29;
- else
- numerodias = 28;
- //Condiciones
- if (dia < 32) {
- if (mes == 2) {
- if (numerodias == 28 & dia <=28 ) {
- System.out.println( "La fecha es: " + dia + " de Febrero del a–o " + any );
- }
- if (numerodias == 29 & dia <=29 ) {
- System.out.println( "La fecha es: " + dia + " de Febrero del a–o " + any );
- }
- else {
- System.out.println( "El dia introducido no existe en este mes" );
- }
- }
- else {
- switch (mes) {
- case 1 :
- if (dia <= 31) {
- System.out.println( "La fecha es: " + dia + " de Enero del a–o " + any );
- }
- else {
- System.out.println("El dia introducido es incorrecto" );
- }
- break;
- case 3 :
- if (dia <= 31) {
- System.out.println( "La fecha es: " + dia + " de Marzo del a–o " + any );
- }
- else {
- System.out.println("El dia introducido es incorrecto" );
- }
- break;
- case 4 :
- if (dia <= 30) {
- System.out.println( "La fecha es: " + dia + " de Abril del a–o " + any );
- }
- else {
- System.out.println("El dia introducido es incorrecto" );
- }
- break;
- case 5 :
- if (dia <= 31) {
- System.out.println( "La fecha es: " + dia + " de Mayo del a–o " + any );
- }
- else {
- System.out.println("El dia introducido es incorrecto" );
- }
- break;
- case 6 :
- if (dia <= 30) {
- System.out.println( "La fecha es: " + dia + " de Junio del a–o " + any );
- }
- else {
- System.out.println("El dia introducido es incorrecto" );
- }
- break;
- case 7 :
- if (dia <= 31) {
- System.out.println( "La fecha es: " + dia + " de Julio del a–o " + any );
- }
- else {
- System.out.println("El dia introducido es incorrecto" );
- }
- break;
- case 8 :
- if (dia <= 31) {
- System.out.println( "La fecha es: " + dia + " dd Agosto del a–o " + any );
- }
- else {
- System.out.println("El dia introducido es incorrecto" );
- }
- break;
- case 9 :
- if (dia <= 30) {
- System.out.println( "La fecha es: " + dia + " de Septembre del a–o " + any );
- }
- else {
- System.out.println("El dia introducido es incorrecto" );
- }
- break;
- case 10 :
- if (dia <= 31) {
- System.out.println( "La fecha es: " + dia + " de Octubre del a–o " + any );
- }
- else {
- System.out.println("El dia introducido es incorrecto" );
- }
- break;
- case 11 :
- if (dia <= 30) {
- System.out.println( "La fecha es: " + dia + " de Noviembre del a–o " + any );
- }
- else {
- System.out.println("El dia introducido es incorrecto" );
- }
- break;
- case 12 :
- if (dia <= 31) {
- System.out.println( "La fecha es: " + dia + " de Diciembre del a–o " + any );
- }
- else {
- System.out.println("El dia introducido es incorrecto" );
- }
- break;
- default : System.out.println( "El mes es incorrecto" );
- break;
- }
- }
- }
- else {
- System.out.println( "El dia introducido es incorrecto" );
- }
- }
- }
- }
- }
- }
No hay comentarios:
Publicar un comentario