math - 将秒转换为日、时、分和秒

标签 math f#

我正在尝试使用 F# 将秒的特定值转换为以下格式:

00d 00h 00m 00s

我确信我的计算是正确的,但它也给出了错误的分钟数。我的代码如下:

let sum = 266521
let day = sum / 86400
let leftover = sum % 86400

let hour = leftover / 3600
leftover = leftover % 3600

let minute = leftover / 60
leftover = leftover % 60

86400 -> Seconds in a day
3600 -> Seconds in an hour
60 -> Seconds in a minute.

我正在尝试进行这种贪婪计算,但它为我提供了以下值: 3d 2h 122m 7321s

但是不能是122m,应该是小时。我不明白我的错误在哪里。 你能帮助我吗? 提前致谢

最佳答案

仅利用内置功能怎么样?

> open System;;
> let secs = 266521;;

val secs : int = 266521

> let s = (TimeSpan.FromSeconds (float secs)).ToString "d\d\ hh\h\ mm\m\ ss\s";;

val s : string = "3d 02h 02m 01s"

关于math - 将秒转换为日、时、分和秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24677019/

相关文章:

f# - 受歧视的工会结构/习俗平等

f# - 无法在 VS 代码上使用 FSI

python - python中具有3位数字的最高回文

algorithm - 投注算法

php - 如何在 PHP 中将 pi 计算为一组数字?

algorithm - 实现求根功能

arrays - 如何在 F# 中添加两个数值数组

java - 如何求函数值域?

.net - 在 F# 中组合异步计算

.net - 运行Stanford.NLP.CoreNLP示例时出现TypeInitializationException