JGP97
JGP97

Reputation: 13

How can I use time in Java to manipulate code?

I'm trying to test the use of time in Java to manipulate code. So let's say I have a app with an egg. The egg won't hatch until 60 seconds have passed in the application, what method or class would I use to do this?

Upvotes: 0

Views: 110

Answers (5)

Tareq Salah
Tareq Salah

Reputation: 3718

You can use timer in a way like this

Timer timer = new Timer();

If you want your code to run multiple times:

timer.scheduleAtFixedRate(new TimerTask() {
  @Override
  public void run() {
    // Your logic here 
    // Your logic will run every 60 second
    System.out.println("egg hatched");
  }
}, 0, 60000);

If you want it to run only one time

timer.schedule(new TimerTask() {
  @Override
  public void run() {
    // Your logic here
    System.out.println("egg hatched");
  }
}, 60000);

You can read more about class timer in java here

Upvotes: 2

Sergei Chicherin
Sergei Chicherin

Reputation: 2050

The easiest old-fashioned single thread approach is

    Thread.sleep(60*1000);
    System.out.println("egg hatched");

And there is no guaranty that it print exactly after minute

Upvotes: 1

PKopachevsky
PKopachevsky

Reputation: 260

Try run it it a separate scheduled thread;

ScheduledExecutorService scheduler =
                Executors.newScheduledThreadPool(1);
        Runnable hatcher = new Runnable() {
            @Override
            public void run() {
                egg.hatch();
            }
        };
        scheduler.schedule(hatcher, 60, TimeUnit.SECONDS);

Upvotes: 0

Simulant
Simulant

Reputation: 20102

System.currentTimeMillis() returns the current time of the system in milliseconds to your. So you need to create a Thread checking for the current time in a while loop an react to it.

Upvotes: 0

npinti
npinti

Reputation: 52185

The Timer class should do what you are after:

A facility for threads to schedule tasks for future execution in a background thread. Tasks may be scheduled for one-time execution, or for repeated execution at regular intervals.

You can take a look at a simple example available here.

Upvotes: 3

Related Questions