0

我正在寻找一种方法来格式化最初以小时表示的持续时间(作为“双”变量),用于用 C# 编写的 ASP.NET Web 应用程序。我需要一个只有 2 个重要值的简短版本。例如:

1h:20m
2d:20h 
2mo:12d 
5y:2mo

我搜索了一下,似乎 C# 没有我需要的内置函数。

所以我决定自己写,但我对所有部分的正确格式感到困惑。例如,我可能会得到一个字符串,例如“1d:24h”,或者简单的 2 个月,我可能会得到“1mo:29d”

PS。我遇到的问题是定义一个月和一年有多少天。

4

1 回答 1

0

DateTime 以令人讨厌的任务而闻名。

由于没有迹象表明您指的是哪个月份,因此根据给定的信息,这是不可能的。根据您考虑的月份/年份,月份可以有 28、29、30 和 31 天。

如果没有说明您正在处理哪些月份,则从 1 个月到 2 个月的翻转将是您在哪一天进行过渡的随机猜测。您要么必须添加更多传入参数来解决此问题,要么向用户解释一个月被视为 x 天且仅 x 天。

要考虑的另一件事是夏令时。下午 1 点 + 24 小时可能不是第二天下午 1 点。在这种情况下您或最终用户不妨考虑这样的日子 23h=1d 或 25h=1d。

于 2012-09-30T21:44:55.320 回答