题
这个问题是问题的另一面,“如何计算相对时间?".
给定相对时间内的一些人类输入,您如何解析它?默认情况下,您将抵消 DateTime.Now()
, ,但可以选择从另一个偏移 DateTime
.
(更喜欢 C# 中的答案)
输入示例:
- “20分钟后”
- “5小时前”
- “3小时2米”
- “下周”
编辑: 假设我们可以对输入定义一些限制。这种代码放在网络上会很有用。
其他提示
谷歌搜索显示 解析日期时间 库(与 钱德勒项目),它就是为了做到这一点而设计的。它是开源的(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 实现的并且没有使用任何花哨的东西,因此它很有可能与 铁蟒, ,因此您可以将其与 .net 一起使用。如果您特别想要一个 C# 解决方案,您可以根据他们使用的算法编写一些东西......
它还带有一大堆单元测试。
这可能不是很有帮助,因为你正在谈论 c#,但由于还没有人提到它,你可以尝试看看 php 的优秀且完全疯狂的本机 斯特托时间 功能
Ruby 开发者尝试用一个名为的解析器来解决这个问题 慢性的.
我最近观看了一个内容丰富的视频演示,介绍了作者如何解决这个问题。
这: http://www.codeproject.com/KB/edit/dateparser.aspx与您想要实现的目标相当接近。这不是最优雅的解决方案,但肯定可以为您节省一些工作。
不隶属于 StackOverflow