java 毫秒倒计时器 想编写一个方法,其中就有一个参数 倒计时多长时间

java 毫秒倒计时器 想编写一个方法,其中就有一个参数 倒计时多长时间,第1张

import javaawtBorderLayout;
import javaawtFont;
import javaawtGraphics;
import javaawteventMouseAdapter;
import javaawteventMouseEvent;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJPanel;
import javaxswingJTextField;
import javaxswingSwingConstants;
public class NanoTimeframe extends JPanel
{
private static final long serialVersionUID = -6135068834705503622L;
private JLabel lblTime;
private long start = 0L; // 从0毫秒开始
private static long MAXTIME = 5000L; // 5秒后结束
private boolean begin = false;
private JTextField setTime;
public NanoTimeframe()
{
thislblTime = new JLabel("单击开始");
thissetTime = new JTextField();
Systemoutprintln("1");
thislblTimesetFont(new Font("Monospaced", FontBOLD, 60));
thislblTimesetHorizontalAlignment(SwingConstantsCENTER);
thislblTimeaddMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e)
{
MAXTIME = LongparseLong(setTimegetText());
begin = true;
lblTimesetText(timeStr(start));
}
});
setLayout(new BorderLayout());
add(lblTime, BorderLayoutCENTER);
add(setTime, BorderLayoutNORTH);
}
private String timeStr(long time)
{
StringBuffer timeBuffer = new StringBuffer();
long miu = time / (60 1000);
time -= miu 60 1000;
long se = time / 1000;
time -= se 1000;
long mi = time % 1000;
timeBufferappend(miu < 10 ("0" + miu) : miu);
timeBufferappend("");
timeBufferappend(se < 10 ("0" + se) : se);
timeBufferappend("");
timeBufferappend(mi < 10 ("00" + mi) : (mi < 100 ("0" + mi) : mi));
return timeBuffertoString();
}
@Override
public void paintComponent(Graphics page)
{
if (!begin) return;
superpaintComponent(page);
if (start >= MAXTIME)
{
lblTimesetText("Bomb!!!");
return;
}
start += 1;
lblTimesetText(timeStr(start));
}

public static void main(String [] args){
JFrame jf = new JFrame();
jfsetResizable(false);
jfsetBounds(0, 0, 460, 330);
jfsetLocationRelativeTo(null);
jfsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
jfadd(new NanoTimeframe());
jfsetVisible(true);
}
}
请给分 改得辛苦上面输入毫秒后计时

我正在用Fortran编写程序,我需要一种方法来计算程序持续时间(以毫秒为单位)。我一直在使用函数\“ date_and_time \”,这给我留下了一个数组,其中包含以小时,分钟,秒和毫秒为单位的系统时间。 我相信我可以在程序开始时调用此函数以存储当前时间,然后在程序结束时再次调用该函数以存储最新时间。但是之后,我将如何计算持续时间?我只是尝试减去这些值,但是经过一秒钟后,毫秒会重置,就像经过一分钟后会重置秒一样。最好的解决方法是什么? 这是程序:
PROGRAM TEST_TIME_AND_DATE
INTEGER I
REAL J
INTEGER TIME_A(8), TIME_B(8)
CALL DATE_AND_TIME(VALUES=TIME_A)
PRINT \'(8I5))\', TIME_A
DO I = 0, 400000000
J = I I - J
END DO
CALL DATE_AND_TIME(VALUES=TIME_B)
print \'(8I5))\', TIME_B
END PROGRAM TEST_TIME_AND_DATE
结果如下:
2011 6 11 -300 9 14 49 304
2011 6 11 -300 9 14 50 688

如果要精确到毫秒,估计只能使用api了,因为在执行的时候,就算只是执行加1 *** 作,他也要一定的时间,就算小于一毫秒,当它累积之后,误差就会变大。出来的方法,最好就是使在定时器里执行的代码尽量简单,以减小误差。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13397566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-28
下一篇 2023-07-28

发表评论

登录后才能评论

评论列表(0条)

保存