Autor Tema: Ejemplo SimpleDateFormat y Date pedir fecha por teclado a usuario con Scanner  (Leído 40858 veces)

jNillo

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 6
    • Ver Perfil
Hola,

Si tengo un constructor en el cual uno de sus parámetros es del tipo Date, cuando tenga que introducir por teclado dicho parámetro tipo Date, ¿cómo se escribe? es decir, ¿en qué formato se introduce para que lo reconozca y no de error?

Gracias
« Última modificación: 22 de Abril 2015, 20:59 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2640
    • Ver Perfil

jNillo

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 6
    • Ver Perfil
Re:introducir Date
« Respuesta #2 en: 22 de Abril 2015, 18:06 »
Hola, gracias por la respuesta
 
Creo que entiendo lo que dices con lo de depreciated, lo que no acabo de comprender es lo de capturar de pantalla.

Estoy utilizando BlueJ
Tengo una clase cita_medico en la que uno de sus campos es fecha del tipo Date. Cuando construyo un nuevo objeto cita, cuando me pide la fecha, si quiero poner que sea el dia 12 de enero a las cuatro, escribo 20015/01/12/16/00   pero sale el error incompatible tipes.

¿cómo he de escribirlo para que reconozca que es del formato Date?

Gracias d antemano, sé que todavía estoy muy verde..


Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2640
    • Ver Perfil
Re:introducir Date
« Respuesta #3 en: 22 de Abril 2015, 20:58 »
Hay varias formas de hacerlo, pero siempre tienes que tener en cuenta que lo que recoges del teclado es uno o varios String y a partir de uno o varios String tienes que crear un objeto Date.

Fíjate en este ejemplo:

Código: [Seleccionar]
import java.util.Scanner;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Prueba {
    public static void main (String[]args) {

        System.out.println("Introduzca la fecha con formato dd/mm/yyyy");
        Scanner sc = new Scanner(System.in);
        String fecha = sc.nextLine();
        SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
        Date testDate = null;
        String date = fecha;
        try{
            testDate = df.parse(date);
            System.out.println("Ahora hemos creado un objeto date con la fecha indicada, "+testDate);
        } catch (Exception e){ System.out.println("invalid format");}

        if (!df.format(testDate).equals(date)){
            System.out.println("invalid date!!");
        } else {
            System.out.println("valid date");
        }

    }
}

Salu2

jNillo

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 6
    • Ver Perfil
Hola de nuevo,
he estado probando con lo de capturar por pantalla pero no me aclaro  :'(

He probado un ejercicio parecido. Consiste en crear una clase Pelicula para crear las peliculas de un cine (ningún problema con esta clase) y una clase Sesion para las sesiones del cine.
Esta clase Sesion tiene un campo fecha tipo Date, pero no sé como pasarle valor a este campo cuando construyo un nuevo objeto, estoy atascado.
Aquí está el código de la clase Sesion a falta de crear los métodos.
--Utilizo BlueJ para realizar las aplicaciones

Código: [Seleccionar]
import java.util.Date;

public class Sesion
{
    // instance variables - replace the example below with your own
    private Date fecha;
    private Pelicula pelicula;
    private int butacas;
    private int butacas_disponibles;
   

    /**
     * Constructor for objects of class Sesion
     */
    public Sesion(Date fecha, Pelicula pelicula, int butacas, int butacas_disponibles)
    {
        // initialise instance variables
        this.fecha = fecha;
        this.pelicula = pelicula;
        this.butacas = butacas;
        this.butacas_disponibles = butacas_disponibles;
    }


viendo la ayuda de BlueJ, he visto que Date puede tener la forma
 Date(int year, int month, int day, int hour, int minute)

de modo que intento dar valor al campo fecha. Si quiero escribir el 2 de julio de 2015 a las 15:30    escribo  115,6,2,15,30   pero nada, salta el error: <identifier> expected

¿qué puedo hacer?

« Última modificación: 23 de Abril 2015, 01:53 por jNillo »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2640
    • Ver Perfil
Hola para crear un Date como indicas basta con hacer esto:

Código: [Seleccionar]
import java.util.Date;

public class Prueba {
    public static void main (String[]args) {

        Date miFecha= new Date(115, 6, 2, 15, 30);
        System.out.println("Ahora hemos creado un objeto date con la fecha indicada, "+miFecha);

    }
}

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".