gpt4 book ai didi

JAVA将分钟转换为默认时间[hh :mm:ss]

转载 作者:太空宇宙 更新时间:2023-11-04 14:22:18 25 4
gpt4 key购买 nike

将分钟( double )转换为默认时间 hh:mm:ss 的最简单、最快的方法是什么

例如,我在 python 中使用了这段代码,它正在工作

时间 = timedelta(分钟=250.0)打印时间

结果:4:10:00

有没有java库或者简单的代码可以做到这一点?

最佳答案

编辑:要将秒显示为 SS,您可以创建一个简单的自定义格式化程序变量以传递给 String.format() 方法

编辑:如果初始 double 值小数点分隔符后的数值大于 59,则添加逻辑以添加一分钟并重新计算

编辑:在对 double 进行数学运算时注意到精度损失(使用 double 的乐趣!),所以时不时地它不会是正确的值(value)。更改了代码以正确计算并舍入它。还添加了逻辑来处理由于秒级联而导致分钟和小时溢出的情况。

试试这个(不需要外部库)

public static void main(String[] args) {
final double t = 1304.00d;

if (t > 1440.00d) //possible loss of precision again
return;

int hours = (int)t / 60;
int minutes = (int)t % 60;
BigDecimal secondsPrecision = new BigDecimal((t - Math.floor(t)) * 100).setScale(2, RoundingMode.HALF_UP);
int seconds = secondsPrecision.intValue();

boolean nextDay = false;

if (seconds > 59) {
minutes++; //increment minutes by one
seconds = seconds - 60; //recalculate seconds
}

if (minutes > 59) {
hours++;
minutes = minutes - 60;
}

//next day
if (hours > 23) {
hours = hours - 24;
nextDay = true;
}

//if seconds >=10 use the same format as before else pad one zero before the seconds
final String myFormat = seconds >= 10 ? "%d:%02d:%d" : "%d:%02d:0%d";
final String time = String.format(myFormat, hours, minutes, seconds);
System.out.print(time);
System.out.println(" " + (nextDay ? "The next day" : "Current day"));
}

当然,这可以继续下去,扩展该算法以概括它。到目前为止,它会一直有效到第二天,但不会再进一步​​,因此我们可以将初始双倍限制为该值。

 if (t > 1440.00d)
return;

关于JAVA将分钟转换为默认时间[hh :mm:ss],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27060759/

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