简体   繁体   English

基于时间的Java计算

[英]Time based calculation in Java

I am creating a program that makes a calculation every minute. 我正在创建一个每分钟进行计算的程序。 I don't know exactly how to do this efficiently, but this is some pseudo code I have written so far: 我不确切知道如何有效地执行此操作,但这是我到目前为止编写的一些伪代码:

 stockCalcTimerH = System.currentTimeMillis() - 1;
    stockCalcTimerI = stockCalcTimerH;
    stockCalcTimer = System.currentTimeMillis();

    if (stockCalcTimerI < stockCalcTimer) {
      *do calcuations*
     stockCalcTimerI + 60000;

When I print both values out on the screen, it comes out as this: 当我在屏幕上打印出两个值时,它出现如下:

stockCalcTimerI = 1395951070595 stockCalcTimer = 1395951010596 stockCalcTimerI = 1395951070595 stockCalcTimer = 1395951010596

It only subtracts the number, and doesn't add the 60000 milliseconds... I'm kind of new to Java, but any feedback helps. 它只减去数字,并没有添加60000毫秒...我对Java有点新意,但任何反馈都有帮助。

Thanks for reading!! 谢谢阅读!!

stockCalcTimerI + 60000;

The new value never gets assigned to a variable. 新值永远不会分配给变量。

Change that to: 改为:

stockCalcTimerI += 60000;

Which is the same as 哪个是一样的

stockCalcTimerI = stockCalcTimerI + 60000;

You can use java.util.Timer class to schedule runs. 您可以使用java.util.Timer类来计划运行。

TimerTask task = new TimerTask() {
    @Override public void run() {
        // do calculations
    }
};
int delay = 0;          // no delay, execute immediately
int interval = 60*1000; // every minute
new Timer().scheduleAtFixedRate(task, delay, interval);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM