我正在寻找一种格式化用C#编写的ASP.NET Web应用程序最初用小时表示的持续时间(作为'双'变量)的方法。我需要一个只有2个重要值的简短版本。例如:
1h:20m
2d:20h
2mo:12d
5y:2mo
我进行了搜索,看起来C#没有我需要的内置函数。
所以我决定自己写,但我对所有部分的正确格式感到难过。例如,我可能会得到一个字符串,例如“1d:24h”,或者仅仅2个月,我可能会得到“1mo:29d”
PS。我遇到的问题是定义一个月和一年中的天数。
答案 0 :(得分:0)
DateTime以其令人讨厌的任务而闻名。
由于没有迹象表明您指的是哪个月,因此根据给定的信息,这是不可能的。月份可以有28天,29天,30天和31天,具体取决于您考虑的月份/年份。
如果没有关于您正在处理的月份的指示,那么从1个月到2个月的翻转将随机猜测您转换的那一天。您将需要添加更多传入参数来解释此问题,或者向用户解释一个月被视为x天且仅x天。
要考虑的另一件事是夏令时。下午1点+ 24小时可能不是第二天下午1点。在这种情况下,您或最终用户可能希望考虑这样的日子23h = 1d或25h = 1d。