gpt4 book ai didi

c# - 如何在 C# 中以 0 到 1 十进制格式转换 DateTime.Now

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

我想将当前时间转换为代表一天的一小部分的小数。例如,如果一天从 0 开始,那么中午 12:00 应该是 0.5。

我需要将该值发送到 API,并且它需要采用该格式。即

"LAST_PRINT_TIME":0.22020833"

最佳答案

根据您对结果的精度要求,这可能会帮助您:

DateTime now = DateTime.Now;
double dayFraction = (now.Hour + now.Minute / 60d) / 24d;

now.Minute/60d 计算当前小时的分数(所以如果时间是 XX:15 PM,这将给出 0.25)。然后将其添加到当前小时。然后将该值除以 24 以获得最终结果。

例如,下午 3:45 将如下所示:(15 + 45/60)/24) => (15 + 0.75)/24 => 15.75/24 => 0.65625

因此,下午 3:45,即一天中的 15.75 小时,将是一天中的 0.65625(或 65.625%)。


或者,正如评论中提到的@madreflection,您也可以使用.ToOADate()。在这种情况下,您可以执行以下操作:

DateTime now = DateTime.Now;
double dayFraction = now.ToOADate() - now.Date.ToOADate();

关于c# - 如何在 C# 中以 0 到 1 十进制格式转换 DateTime.Now,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58550025/

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