我希望能够让用户使用自然语言输入日期(包括重复日期)(例如“下周五”,“每个工作日”)。与http://todoist.com/Help/timeInsert
中的示例非常相似我找到this post,但它有点陈旧,只提供one solution,我并不完全满足。我以为我会复活这个问题并看到:那里有没有其他.NET库可以进行这种日期解析吗?
答案 0 :(得分:6)
我知道这不是最佳解决方案,但您也可以尝试将dateJs库移植到.net
它处理像今天这样的事情;明天; 2008年7月;下周五;去年四月; 2004年8月7日; 2005年6月4日;晚上8:15; 22时30分45秒; + 5年
答案 1 :(得分:3)
我不知道你今天可以使用哪些框架可以让你这样做,但如果你满足于玩未来的比特,你可以查看奥斯陆,并制作自己的文本DSL
本文介绍了如何完成您要执行的操作:
http://www.infoq.com/articles/natural-language-date-dsl-oslo
答案 2 :(得分:1)
DateTime.Parse()将采用字符串参数并尝试生成其DateTime相等。我对它有点生疏,但它适用于任何可以使用DateTime.ToString()生成的日期字符串。
您还可以查看DateTime.ParseExact(),它与Parse()完成相同的操作,但允许您限制输入字符串的可能格式。以下链接可以帮助您解决框架中的任何其他日期解析函数。
答案 3 :(得分:1)
我们在内部项目中精确地开发了您正在寻找的东西。如果有足够的需要,我们正在考虑将其公之于众。请查看此博客以获取更多详细信息:http://precisionsoftwaredesign.com/blog.php。
答案 4 :(得分:0)
我已经将this library构建为工作项目的一部分。它并不完全抛光,但如果您有兴趣,我可以在其中加入更多工作和/或为您的需求安排许可证。
答案 5 :(得分:0)
我编写的非常旧的程序(使用Clipper,DBASE派生词),但代码非常易读。
<强> http://www.jbooth-consulting.com/downloads/clipper/guessdate.zip 强>
如果你想自己动手,可能会给你一些想法......