[英]How to parse relative time?
這個問題是問題的另一面,“ 我如何計算相對時間? ”。
鑒於相對時間的一些人工輸入,您如何解析它? 默認情況下,您將從DateTime.Now()
偏移,但可以選擇從另一個DateTime
偏移。
(首選 C# 中的答案)
示例輸入:
編輯:假設我們可以對輸入定義一些限制。 這種代碼在網絡上會很有用。
Google 搜索出現了parsedatetime庫(與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# 解決方案,你可以根據他們使用的算法編寫一些東西......
它還帶有一大堆單元測試。
ruby 人員試圖用一個叫做Chronic的解析器來解決這個問題。
我最近觀看了有關作者如何解決這個問題的內容豐富的視頻演示。
這可能不是那么有用,因為你在談論 c# 但因為沒有人提到它,你可以嘗試看看 php 優秀且完全瘋狂的原生strtotime函數
這: http : //www.codeproject.com/KB/edit/dateparser.aspx與您要完成的任務非常接近。 不是最優雅的解決方案,但肯定可以為您節省一些工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.