HeRoy
HeRoy

Reputation: 21

Set new time after the actual one

I'm trying to create a method that prints e.g. actual time of arrival (now) and then it prints the time of departure which I want to set plus 3 minutes compared to the first one.

public void updateTimes(){
    SimpleDateFormat sdf = new SimpleDateFormat("H:mm");
    this.arrivalTime = new Date();
    this.departureTime = this.arrivalTime.plusMinutes(3);
}

Departure time doesn't work as intended. Any help is welcome.

Upvotes: 1

Views: 87

Answers (3)

Youcef LAIDANI
Youcef LAIDANI

Reputation: 60046

java.util.Date not have plusMinutes.

It can be better if you use Java 8, with java.time library :

LocalTime arrivalTime = LocalTime.now();//Current time
LocalTime departureTime = arrivalTime.plusMinutes(3);//plus 3 minutes to the time

//Then you can format the time
String result = departureTime.format(DateTimeFormatter.ofPattern("H:mm"));

Upvotes: 3

Rahul
Rahul

Reputation: 687

I think you can do something like below:

    SimpleDateFormat sdf = new SimpleDateFormat("H:mm");
    Date date = new Date();

    System.out.println("arrival time = " + sdf.format(date));

    int min = date.getMinutes();
    date.setMinutes(min+3);

    System.out.println("departure time = " + sdf.format(date));

Upvotes: 0

Daniel
Daniel

Reputation: 1594

Another solution using Calendar looks like:

Calendar cal = Calendar.getInstance();
cal.setTime(arrivalTime); // only if different from "now"
cal.add(Calendar.MINUTE, 3);
departureTime = cal.getTime();

Upvotes: 0

Related Questions