2009-08-20 34 views
11

是否存在一個將人類可讀時間片解析爲.net TimeSpan的庫?解析人類可讀時間跨度的C#庫

我需要的東西,將解析像

30 days 
1 week 
5 hours 

字符串是否這樣的事情存在?寫下自己的想法可能並不難,但如果有東西在那裏,它會容易得多!

我目前不需要像「30天,3小時,5分鐘」這樣的功能,只是一個值,但它不會傷害!

+0

你在這裏解析是什麼意思?轉換爲另一個日期時間值? – 2009-08-20 08:13:20

+0

只是爲了澄清一下,能夠指定「30天,32小時,5分鐘」之類的內容會很好,但我的要求目前非常簡單,就像我上面的示例一樣。 – Gareth 2009-08-20 08:13:31

+0

@Wel:是的,我想將它解析成TimeSpan實例。 – Gareth 2009-08-20 08:14:16

回答

3

我在這個問題上採取了一些措施,我在玩解析器,因爲我對它們一無所知,所以不要期望質量。但你可以在這裏得到的代碼:http://timestamper.codeplex.com/

我沒有看過它一段時間,但我很確定它可以做所有你上面提到的事情。

編輯:

就指出,你想一個時間跨度對象返回,而不是日期時間。我提供的代碼將返回相當於今天的DateTime,即

「2天」將是:DateTime.Now.AddDays(2);

至少我認爲這是做什麼,可以肯定的。如果是這種情況,您應該能夠獲得兩個日期時間之間的時間間隔。

+0

真棒,謝謝歐文。雖然我已經爲TimeSpan寫了一個非常簡單的解析器,但這是一個非常方便的庫! – Gareth 2009-08-20 13:25:28

+2

不用擔心。實際上,如果你需要它來做更多的事情,我可能會在某個時間點上再玩一次。 – Owen 2009-08-20 13:27:09

+1

@Owen它會很酷,如果它在NuGet上可用;) – MattDavey 2012-07-19 19:54:38

0

那麼,我知道datejs的JavaScript代碼非常適合這樣的日期。你可以看看它的靈感C#代碼。不知道這是否有幫助,但;但可能會很有趣。

見www.datejs.com

0

我知道你正在尋找一個圖書館要做到這一點,但它似乎喜歡這種語法的人是Ruby開發人員,他們堅持Ruby。如果你真的想這樣做,它很容易做一些類似於.Net擴展的東西,它更具可讀性。看看這篇文章http://haacked.com/archive/2007/05/24/ruby-like-syntax-in-c-3.0.aspx

另外,如果你不喜歡文章中的語法,那麼你所需要做的就是創建一個解析器,它可以轉換爲ticks,這可以被時間跨度構造器類使用。

0

這不是直接適用的,但my company已經開發了一個.NETlibrary這對日期做這個。一個爲跨度工作的對手(或多或少正是你要求的)計劃在「當我們需要時」。如果有足夠的興趣,那可能會更快。

+0

最後我檢查,網站是使用服裝工具生成的。但爲了避免斷開鏈接,仍然使用PHP擴展。無論如何,我們是一個混血的商店。 – BCS 2009-08-20 17:12:30

+0

這就是因爲這就是php的好處,面向客戶的網站在引擎蓋下幾乎沒有什麼有趣的事情發生。 – Owen 2009-08-21 16:56:46

+0

看起來像這個鏈接已損壞。你有備用鏈接嗎? – derekantrican 2017-04-12 20:35:13