Class DATE show in main

0

I have created a program that saves a date by default and I have added a method to increase the day (+1) to the current date and another to increase the month.

I do not know how to show the method IncreaseMes and increaseDia in the main

public class MiFecha {

private String dia;
private String mes;
private String anyo;
private String hora;
private String minuto;

public MiFecha(String dia, String mes, String anyo, String hora, String minuto) {
    this.dia = dia;
    this.mes = mes;
    this.anyo = anyo;
    this.hora = hora;
    this.minuto = minuto;
}

public Date incrementarDia(Date fecha, int dias) {
    Calendar calendar = Calendar.getInstance();

    calendar.setTime(fecha);

    calendar.add(Calendar.DAY_OF_YEAR, dias);

    return calendar.getTime();

}

public Date incrementarMes(Date mes, int dias) {

    Calendar calendar = Calendar.getInstance();

    calendar.setTime(mes);

    calendar.add(Calendar.DAY_OF_MONTH, dias);

    return calendar.getTime();

}

public String getDia() {
    return dia;
}

public void setDia(String dia) {
    this.dia = dia;
}

public String getMes() {
    return mes;
}

public void setMes(String mes) {
    this.mes = mes;
}

public String getAnyo() {
    return anyo;
}

public void setAnyo(String anyo) {
    this.anyo = anyo;
}

public String getHora() {
    return hora;
}

public void setHora(String hora) {
    this.hora = hora;
}

public String getMinuto() {
    return minuto;
}

public void setMinuto(String minuto) {
    this.minuto = minuto;
}

public String toString(String Fecha) {
    return dia + mes + anyo + hora + minuto;

}
}

and the main

    public static void main(String[] args) {

    Scanner teclado = new Scanner(System.in);

    MiFecha fecha = new MiFecha("lunes ", " enero ", "2017 ", "hora: 19 : ", "minutos: 45 ");
    System.out.print(fecha.getDia());
    System.out.print(fecha.getMes());
    System.out.print(fecha.getAnyo());
    System.out.print(fecha.getHora());
    System.out.println(fecha.getMinuto());
    System.out.println("*****************************************");
    System.out.println("Introduce una nueva fecha al sistema para incrementar fecha : ");
    String Modificarfecha = teclado.next();
    System.out.println("La fecha ha sido modificada: " + incrementarDia);
    System.out.println("*****************************************");

    System.out.println("Introduce una nueva hora:  ");
    String ModificarHora = teclado.next();
    System.out.println("La hora ha sido modificada:" + ModificarHora);




}
}
    
asked by kitkat 23.01.2017 в 19:51
source

2 answers

1

Add a private Date fecha in the constructor initialize it with the parameters of its constructor in the constructor of your class.

Date(int year, int month, int date, int hrs, int min)

Create your getter.

Add a method that converts the date to string

 public static String getFechaString(Date fecha) {
    SimpleDateFormat formateador = new SimpleDateFormat("dd-MM-yyyy");
    return formateador.format(fecha);
}

Until the last one just pass the parameters to your methods

System.out.println("el dia modificado es: " + fecha.getFechaString(incrementarDia(fecha.getFecha(), dia));

Your code would look like this:

import java.text.SimpleDateFormat;

import java.util.Calendar; import java.util.Date; import java.util.Scanner;

public class MiFecha {     private int day;     private int month;     private int anyo;     private int hour;     private int minute;     Private Calendar date;

public MiFecha(int dia, int mes, int anyo, int hora, int minuto) {
    this.dia = dia;
    this.mes = mes;
    this.anyo = anyo;
    this.hora = hora;
    this.minuto = minuto;
    this.fecha = Calendar.getInstance();
    this.fecha.set(anyo, mes, dia, hora, minuto);
}

public Date incrementarDia(Calendar fecha, int dias) {
    this.fecha = fecha;

    fecha.add(Calendar.DATE, dias);

    return fecha.getTime();

}

public Date incrementarMes(Calendar fecha, int dias) {
    this.fecha = fecha;
    fecha.add(Calendar.DAY_OF_MONTH, dias);

    return fecha.getTime();

}

public int getDia() {
    return dia;
}

public void setDia(int dia) {
    this.dia = dia;
}

public int getMes() {
    return mes;
}

public void setMes(int mes) {
    this.mes = mes;
}

public int getAnyo() {
    return anyo;
}

public void setAnyo(int anyo) {
    this.anyo = anyo;
}

public int getHora() {
    return hora;
}

public void setHora(int hora) {
    this.hora = hora;
}

public int getMinuto() {
    return minuto;
}

public void setMinuto(int minuto) {
    this.minuto = minuto;
}

public Calendar getFecha() {
    return this.fecha;
}

public int toString(int Fecha) {
    return dia + mes + anyo + hora + minuto;
}

public static String getFechaString(Date fecha) {
    SimpleDateFormat formateador = new SimpleDateFormat("dd-MM-yyyy");
    return formateador.format(fecha);
}

public static void main(String[] args) {
    Scanner teclado = new Scanner(System.in);

    Lenguaje fecha = new Lenguaje(3, 1, 2017, 19, 45);
    System.out.println(fecha.getFechaString(fecha.getFecha().getTime()));
    System.out.println("*****************************************");
    System.out
            .println("Introduce una nueva fecha al sistema para incrementar fecha : ");
    int incrementarDia = teclado.nextInt();
    System.out.println("el dia modificado es "
            + fecha.getFechaString(fecha.incrementarDia(fecha.getFecha(),
                    incrementarDia)));
    System.out.println("*****************************************");
}

}

    
answered by 23.01.2017 / 20:44
source
1

Your "incrementDia ()" function asks you for two parameters, an object of type Date and an integer, you are trying to print it in the following way:

System.out.println("La fecha ha sido modificada: " + incrementarDia);

When you should send something like the following:

System.out.println("La fecha ha sido modificada: " + fecha.incrementarDia(new Date(), 1));

However, what you want is to print the date you have stored in your same object plus the number of days, so you must do two things, create a function getFecha () in your object MyDate and ask for a whole in your Scanner () so it would look like this:

public class MiFecha {

private String dia;
private String mes;
private String anyo;
private String hora;
private String minuto;
//Creamos un objeto de tipo fecha
private Date fecha;

public MiFecha(String dia, String mes, String anyo, String hora, String minuto) {
    this.dia = dia;
    this.mes = mes;
    this.anyo = anyo;
    this.hora = hora;
    this.minuto = minuto;
}

//Constructor para inicializar la fecha

 public MiFecha(int dia, int mes, int anyo, int hora, int minuto) {
    Calendar calendar = Calendar.getInstance();
    //Asignamos la fecha con ayuda del objeto Calendar
    calendar.set(Calendar.DAY_OF_WEEK_IN_MONTH, dia);
    calendar.set(Calendar.MONTH, mes);
    calendar.set(Calendar.YEAR, anyo);
    calendar.set(Calendar.HOUR, hora);
    calendar.set(Calendar.MINUTE, minuto);
    fecha = calendar.getTime();
}

public Date incrementarDia(Date fecha, int dias) {
    Calendar calendar = Calendar.getInstance();

    calendar.setTime(fecha);

    calendar.add(Calendar.DAY_OF_YEAR, dias);

    return calendar.getTime();

}

public Date incrementarMes(Date mes, int dias) {

    Calendar calendar = Calendar.getInstance();

    calendar.setTime(mes);

    calendar.add(Calendar.DAY_OF_MONTH, dias);

    return calendar.getTime();

}

public String getDia() {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(fecha);
    return String.valueOf(calendar.get(Calendar.DAY_OF_MONTH));
}

public void setDia(String dia) {
    this.dia = dia;
}

public String getMes() {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(fecha);
    return String.valueOf(calendar.get(Calendar.MONTH));
}

public void setMes(String mes) {
    this.mes = mes;
}

public String getAnyo() {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(fecha);
    return String.valueOf(calendar.get(Calendar.YEAR));
}

public void setAnyo(String anyo) {
    this.anyo = anyo;
}

public String getHora() {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(fecha);
    return String.valueOf(calendar.get(Calendar.HOUR));
}

public void setHora(String hora) {
    this.hora = hora;
}

public String getMinuto() {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(fecha);
    return String.valueOf(calendar.get(Calendar.MINUTE));
}

public void setMinuto(String minuto) {
    this.minuto = minuto;
}

public String toString(String Fecha) {
    return dia + mes + anyo + hora + minuto;

}

//Encapsulamos la fecha

public Date getFecha() {
    return fecha;
}

public void setFecha(Date fecha) {
    this.fecha = fecha;
}

  }

The main:

public class main {

public static void main(String[] args) {

    Scanner teclado = new Scanner(System.in);

    //Inicializamos la fecha con el nuevo constructor, colocaré aquí la misma fecha que usaste pero con su nuevo equivalente
    MiFecha fecha = new MiFecha(23, 0, 2017, 19, 45);
    System.out.print(fecha.getDia());
    System.out.print(fecha.getMes());
    System.out.print(fecha.getAnyo());
    System.out.print(fecha.getHora());
    System.out.println(fecha.getMinuto());
    System.out.println("*****************************************");
    System.out.println("Introduce una nuevo día del mes : ");
    //Aquí pediremos los días que se quieran incrementar
    int modificarfecha = teclado.nextInt();

    //Esto para imprimir fecha en español
    SimpleDateFormat formateador = new SimpleDateFormat(
            "dd 'de' MMMM 'de' yyyy 'a las ' HH':'MM", new Locale("es_ES"));
    Date fechaDate = new Date();

    //A tu función le mandamos su propia fecha y los días que queramos incrementar
    System.out.println("La fecha ha sido modificada: " + formateador.format(fecha.incrementarDia(fecha.getFecha(), modificarfecha)));
    System.out.println("*****************************************");

    System.out.println("Introduce una nueva mes:  ");
    modificarfecha = teclado.nextInt();
    //A tu función le mandamos su propia fecha y los meses que queramos incrementar
    System.out.println("La hora ha sido modificada:" + formateador.format(fecha.incrementarMes(fecha.getFecha(), modificarfecha)));

}

}
    
answered by 23.01.2017 в 21:05