Java - ¿cómo puedo tomar como fecha de entrada y de ser capaz de añadir/restar los días/meses/años

0

Pregunta

Actualmente estoy usando este código y no sé si hay una forma de sumar o restar la fecha que yo de entrada con Scanner(System.in)

Scanner scanner = new Scanner(System.in);
System.out.println("Date: ");
String date = scanner.next();
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
Date date2=null;
try {
    date2 = dateFormat.parse(date);
} catch (ParseException e) {
    e.printStackTrace();
}
date intellij-idea java
2021-11-21 02:51:00
2

Mejor respuesta

1

java.tiempo

No utilice nunca el legado clases Date y SimpleDateFormat. Utilice sólo de java.el tiempo de clases.

DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM/dd/uuuu" ) ;
LocalDate ld = LocalDate.parse( input , f ) ;

Para sumar y restar, llame a la plus… y minus… métodos.

LocalDate later = ld.plusDays( 3 ) ;
LocalDate earlier = ld.minusYears( 7 ) ;
2021-11-21 06:15:13

¿Puedo utilizar el escáner de la clase para obtener la entrada
brae

@brae Sí, la parte de la lectura de código de entrada de usuario se modifica a partir de la pregunta. Sólo el código de la respuesta que se supone que la variable que contiene la cadena de leer desde el escáner se denomina input en lugar de date.
Ole V.V.
0

Usted puede convertir Fecha a LocalDate. Tiene más métodos, como plusYears(),plusMonths(),plusDays().

    // Date -> LocalDate
    private static LocalDate of(Date date) {
        Instant instant = date.toInstant();
        return instant.atZone(ZoneId.systemDefault()).toLocalDate();
    }
 
    // LocalDate -> Date
    private static Date of(LocalDate localDate) {
        Instant instant = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant();
        return Date.from(instant);
    }
2021-11-21 03:14:08

Las conversiones son correctos, pero el OP es mejor a no utilizar el Date a la clase y por lo tanto no necesitan las conversiones.
Ole V.V.

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................