所以我尝试制作一个简单的代码作为倒数计时器。用户将在终端中输入2位数,相应的分钟和秒值。这是代码:
public class CountdownMins
{
public static void main(String args[]) throws InterruptedException
{
int min = Integer.parseInt(args[0]);
int sec = Integer.parseInt(args[1]);
for(int i=min;i>=0;i--)
{
for(int j=sec;j>=0;j--)
{
Thread.sleep(1000);
System.out.println(i +" minutes" + " " + j + " seconds");
}
sec=60;
}
}
}
我想知道如果用户在第二个输入上输入大于60的数字,我该怎么办?就像他们放120会改为2分钟或者当他们输入90时它将它转换为1分30秒并相应地添加它们插入分钟值
答案 0 :(得分:1)
您可以使用TimeUnit
执行大部分繁重工作,将所有内容转换为毫秒并执行计算。像,
long start = System.currentTimeMillis();
long total = TimeUnit.MINUTES.toMillis(min) + TimeUnit.SECONDS.toMillis(sec);
long remain;
while ((remain = start + total - System.currentTimeMillis()) > 0) {
try {
long reMin = TimeUnit.MILLISECONDS.toMinutes(remain);
long reSec = TimeUnit.MILLISECONDS
.toSeconds(remain - TimeUnit.MINUTES.toMillis(reMin));
System.out.printf("%d minutes, %d seconds%n", reMin, reSec);
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
答案 1 :(得分:0)
你可以将秒除以60并将被除数加到分钟,然后将其余部分加为秒。
min += sec / 60;
sec = sec % 60;
如果你想安全地使用底片也添加:
if(sec < 0){sec += 60;}