gpt4 book ai didi

java - 如何将新的持续时间与存储的持续时间进行比较并替换为两者中较短的一个?

转载 作者:行者123 更新时间:2023-12-01 08:47:58 25 4
gpt4 key购买 nike

我想记录完成一个游戏关卡所需的最短时间。

我想将其存储在 SharedPreferences 中。现在,我可以存储和检索每个级别的时间并将其设置在 ListView 中,但我将其存储为“00:00”等字符串格式。

我使用了两个 int(s)(分钟、秒),最后当关卡完成时,它们每秒钟增加 1,我将其存储为

String time = String.format("%02d", Minutes) + ":" + String.format("%02d", Seconds);

然后我将其存储在 SharedPreferences 中。但我无法比较最近完成一个关卡所需的时间是否比之前最短的时间短。

如果用户在该特定级别上花费的时间比以前少,我只想替换时间。

最佳答案

只需存储时间戳即可。您可以使用 System.currentTimeMillis() 获取关卡开始的时间,并在关卡结束时再次调用该时间,获取差异并将其存储为长整型而不是字符串。然后,您可以使用

将这些毫秒转换为秒和分钟
String.format("%02d %02d", 
TimeUnit.MILLISECONDS.toMinutes(millis),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);

类似这样的事情

long startTime = System.currentTimeMillis();
try {
Thread.sleep(3000);
long endTime = System.currentTimeMillis();

long differenceTime = endTime - startTime;
Log.d("TEST", String.format("%02d %02d",
TimeUnit.MILLISECONDS.toMinutes(differenceTime),
TimeUnit.MILLISECONDS.toSeconds(differenceTime) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(differenceTime))
));
} catch (Exception e) {

}

关于java - 如何将新的持续时间与存储的持续时间进行比较并替换为两者中较短的一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42561282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com