这个问题是问题的另一面,问" 我如何计算相对时间? ".
鉴于相对时间的一些人为输入,你如何解析它?默认情况下,您将偏移DateTime.Now()
,但可以选择从另一个偏移DateTime
.
(首选C#中的答案)
输入示例:
"在20分钟内"
"5小时前"
"3h 2m"
"下周"
编辑: 我们假设我们可以在输入上定义一些限制.这种代码在网络上是有用的.
Google搜索会显示解析时间库(与Chandler项目相关联),该库旨在完成此操作.它是开源的(Apache许可证),用Python编写.它似乎相当复杂 - 从主页:
parsedatetime能够解析,例如,以下内容:
* Aug 25 5pm * 5pm August 25 * next saturday ... * tomorrow * next thursday at 4pm * at 4pm * eod * in 5 minutes * 5 minutes from now * 5 hours before now * 2 days from tomorrow
由于它是用纯Python实现的,并没有使用任何花哨的东西,因此很有可能它与IronPython兼容,因此你可以将它与.net一起使用.如果你想要专门的C#解决方案,你可以根据他们使用的算法写一些东西......
它还附带了一大堆单元测试.