6

我希望能够让用户使用自然语言(例如“下周五”、“每个工作日”)输入日期(包括重复日期)。很像http://todoist.com/Help/timeInsert上的示例

我找到了这篇文章,但它有点旧,并且只提供了一个我并不完全满意的解决方案。我想我会重新提出这个问题,看看:是否还有其他 .NET 库可以进行这种日期解析?

4

6 回答 6

6

我知道这不是最佳解决方案,但您也可以尝试将dateJs库移植到 .net

它处理像今天这样的事情;明天; 2008 年 7 月;下周五; 去年四月;2004.08.07;2005 年 6 月 4 日;晚上 8 点 15 分;22:30:45;+5年

于 2009-01-25T19:20:16.317 回答
3

我不知道你今天可以在框架中使用什么来允许你这样做,但如果你满足于玩未来的比特,你可以看看 Oslo,并制作你自己的文本 DSL。

这篇文章展示了如何做你正在尝试做的事情:

http://www.infoq.com/articles/natural-language-date-dsl-oslo

于 2009-01-21T20:55:42.547 回答
1

DateTime.Parse() 将接受一个字符串参数并尝试生成它的 DateTime 相等。我对此有点生疏,但它应该适用于您可以使用 DateTime.ToString() 生成的任何日期字符串。

您还可以查看 DateTime.ParseExact(),它与 ​​Parse() 执行相同的操作,但允许您限制输入字符串的可能格式。以下链接应该可以帮助您使用框架中的任何其他日期解析功能。

http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

于 2009-01-28T00:23:38.060 回答
1

我们开发的正是您在内部项目中寻找的东西。如果有足够的需要,我们正在考虑将其公开。请查看此博客了解更多详细信息:http: //precisionsoftwaredesign.com/blog.php

于 2009-03-10T00:32:25.057 回答
0

我已经将这个库构建为工作项目的一部分。它没有完全完善,但如果您有兴趣,我可以在其中投入更多工作和/或根据您的需要安排许可证。

于 2009-11-10T21:20:41.713 回答
0

我编写的非常旧的程序(使用 DBASE 衍生工具 Clipper),但代码可读性很强。

http://www.jbooth-consulting.com/downloads/clipper/guessdate.zip

如果您想自己动手,可能会给您一些想法...

于 2009-12-21T04:56:56.473 回答