在使用Mirai编写QQ机器人时,由于功能需要就编写了一个计时程序,用来说明运行时长
代码及思路如下:
long startTime = System.currentTimeMillis();//将开始时间赋给startTime,放在开始计时的地方,可添加相应关键词以配合完成功能
long endTime = System.currentTimeMillis();//结束的时间,放在结束计时的地方
long usedTime_s = (endTime - startTime) / 1000;//1秒=1000毫秒,取出秒数
//初始化分钟,小时,天数
long usedTime_m = 0;//初始化分钟
long usedTime_h = 0;//初始化小时
long usedTime_d = 0;//初始化天数
String usedTime;//将usedTime引入下面while循环的范围
while (true) {
//如果使用的秒数 >= 60秒,则向usedTime_m进一,自己减60
if (usedTime_s >= 60) {
usedTime_s -= 60;
usedTime_m += 1;
//如果使用的分钟数 >= 60分钟,则向usedTime_h进一,自己减60
} else if (usedTime_m >= 60) {
usedTime_m -= 60;
usedTime_h += 1;
//如果使用的小时数 >= 24小时,则向usedTime_d进一,自己减24
} else if (usedTime_h >= 24) {
usedTime_h -= 24;
usedTime_d += 1;
//如果usedTime_s < 60 ,也就是秒数 >=60 的部分已经全部处理完了,其他的分钟,小时,天数也就处理完了,这时可以拼接字符串,退出循环
} else if (usedTime_s < 60) {
usedTime = usedTime_d + "天" + usedTime_h + "小时" + usedTime_m + "分钟" + usedTime_s + "秒";
break;
}
}
全部代码
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
long endTime = System.currentTimeMillis();
long usedTime_s = (endTime - startTime) / 1000;
long usedTime_m = 0;
long usedTime_h = 0;
long usedTime_d = 0;
String usedTime;
while (true) {
if (usedTime_s >= 60) {
usedTime_s -= 60;
usedTime_m += 1;
} else if (usedTime_m >= 60) {
usedTime_m -= 60;
usedTime_h += 1;
} else if (usedTime_h >= 24) {
usedTime_h -= 24;
usedTime_d += 1;
} else if (usedTime_s < 60) {
usedTime = usedTime_d + "天" + usedTime_h + "小时" + usedTime_m + "分钟" + usedTime_s + "秒";
break;
}
}
System.out.println(usedTime);
}
加入Thread.sleep();
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
long endTime = System.currentTimeMillis();
long usedTime_s = (endTime - startTime) / 1000;
long usedTime_m = 0;
long usedTime_h = 0;
long usedTime_d = 0;
String usedTime;
while (true) {
if (usedTime_s >= 60) {
usedTime_s -= 60;
usedTime_m += 1;
} else if (usedTime_m >= 60) {
usedTime_m -= 60;
usedTime_h += 1;
} else if (usedTime_h >= 24) {
usedTime_h -= 24;
usedTime_d += 1;
} else if (usedTime_s <= 60) {
usedTime = usedTime_d + "天" + usedTime_h + "小时" + usedTime_m + "分钟" + usedTime_s + "秒";
break;
}
}
System.out.println(usedTime);
}
最后输出
0天0小时0分钟5秒
测试成功!!!
只是介绍我的方法思路,若代码有问题可及时指出。