user2530802
user2530802

Reputation: 129

how to calculate the elapsed time of a particular event in my application?

I need to show in my software the amount of days, hours and minutes that a particular event occurred.

I get a string with the value of the last event and calculating the amount of time that the event occurred.

..

lastEvent: String = lastEventOcorr (); "16.07.2013 19:20:06"

..

example:

Last event occurred: 3 Days 6 Hours 45 Minutes and 42 Seconds

or

Last event occurred: 5 Minutes 30 Seconds

..

There is a practical way to do this calculation?

I really appreciate all the help.

Thank you very much

Upvotes: 0

Views: 157

Answers (3)

JavaKB
JavaKB

Reputation: 468

Here is an example on how to count days, you can add hours and mins to this.

            long MILLIS_IN_DAY = 1000 * 60 * 60 * 24;

        String lastEvent =  "13.07.2013 10:20:06";
        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
        Date lastEventDate = sdf.parse(lastEvent);
        Date currentDate = new Date();

        long timeElapsed = currentDate.getTime() - lastEventDate.getTime();
        long diffInDays = timeElapsed / MILLIS_IN_DAY; 

        System.out.println(diffInDays);

Upvotes: 0

Brinnis
Brinnis

Reputation: 906

I would strongly suggest simply doing System.currentTimeMillis() at the start of the event and at the end of the event.

long start = System.currentTimeMillis();
//EVENT
long stop = System.currentTimeMillis();

long difference = stop - start;

Then with a little math you can get it in a nicer format.

int seconds=(difference/1000)%60;
int minutes=(difference/(1000*60))%60;
int hours=(difference/(1000*60*60))%24;

Upvotes: 1

Michael Lang
Michael Lang

Reputation: 3992

Here are several approaches on how to parse your String into a Date instance.

Afterwards you need to calculate the difference between the parsed Date and the current date (new Date()).

Finally you can format your resulting difference according to your preferences.

Upvotes: 1

Related Questions