Gnanaseelan
Gnanaseelan

Reputation: 404

How to do time running using Java

I have start_time and end_Time, so I tried to print those interval_times (time format 24).

How do I do it?

int start = Integer.parseInt("10:24:49");
int end = Integer.parseInt("11:24:49");

for (int i = start; i < end; i++)
{
    System.out.println("result  i ="+ i);
}

Upvotes: 0

Views: 100

Answers (4)

K Kishore Kumar Reddy
K Kishore Kumar Reddy

Reputation: 93

This may help:

DateTime startTime, endTime;
Period p = new Period(startTime, endTime);
int hours = p.getHours();
int minutes = p.getMinutes();

And also you can use Java.util.Timer to schedule a thread to be executed at a certain time in the future.

Upvotes: 0

madz
madz

Reputation: 1863

Before using, see comments below.

If you are intending to print every hour between two given times, then you are totally on the wrong path.

Integer.parseInt

It is intended to get a String number and converts it to Java Integer.

Try to use SimpleDateFormat and Date and Calendar

String startTime = "10:24:49";
String endTime = "11:24:49";
DateFormat sdf = new SimpleDateFormat("hh:mm:ss");

Calendar calendar = Calendar.getInstance();
calendar.setTime(sdf.parse(startTime));
int start = calendar.get(Calendar.HOUR_OF_DAY);

calendar.setTime(sdf.parse(endTime));
int end = calendar.get(Calendar.HOUR_OF_DAY);

Upvotes: 0

Priyansh Nigam
Priyansh Nigam

Reputation: 37

It looks like you want to run the loop for particular duration of time.

In case you want to run the loop for fixed duration like for 5 minutes, with a 5 second interval, you can do it like this:

try {
     // This loop will run for 5 minutes for every 5 second delay
     for(int i=0;i<60;i++) {
       System.out.println(new Date());
        Thread.sleep(5 * 1000);
    }
}
catch (InterruptedException e) {
    e.printStackTrace();
}

Upvotes: 0

Dreamspace President
Dreamspace President

Reputation: 1118

Since Java 8, the java.time package has been the optimal way to do all date/time related things.

It takes some getting used to, e.g. when it comes to timezones, but it's absolutely worth the effort!

Here's the code for your seconds printer:

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public static void main(final String[] args) {

    // Just so you know it in the future. Not needed in this example.
    final DateTimeFormatter dtfDateTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.US);

    final DateTimeFormatter dtfTime = DateTimeFormatter.ofPattern("HH:mm:ss", Locale.US);

    final LocalTime ltStart = LocalTime.of(10, 24, 49);
    final LocalTime ltEnd = ltStart.plusHours(1);

    // If you want to use String parsing to get your instance:
    final LocalTime ltStartViaParsing = LocalTime.from(dtfTime.parse("10:24:49"));

    LocalTime i = ltStart;
    while (i.isBefore(ltEnd)) {

        System.out.println("result i = " + dtfTime.format(i));
        i = i.plusSeconds(1);
    }
}

Output:

result i = 10:24:49
result i = 10:24:50
result i = 10:24:51
...
result i = 11:24:46
result i = 11:24:47
result i = 11:24:48

Upvotes: 4

Related Questions