2012-03-05 108 views
0

我有規定的格式MMMMMMSS.Does特定事件的任何一個知道時間是什麼樣的格式是這樣的持續時間,以及如何使用C#語言MMMMMMSS這是一種什麼樣的持續時間格式?

+2

你能給出輸入和期望輸出的例子嗎? – 2012-03-05 16:05:06

+1

6行中的M'不是[標準](http://msdn.microsoft.com/en-us/library/az4se3k1.aspx)或[自定義](http://msdn.microsoft.com/ en-us/library/8kb3ddd4.aspx)格式字符串。 – Oded 2012-03-05 16:06:56

+0

任何長度大於4的「M」字符串被解釋爲「MMMM」,它返回月份的長名稱(例如「August」)。問題在於'SS'不符合任何事情;另一方面,'ss'是左零填充秒。也許這不應該是一個.NET格式的字符串。 – Shibumi 2012-03-05 16:54:44

回答

3

如果格式是真的M...MSS(提供作爲整數value),將其轉換成秒是很容易的:

var seconds = (value/100) * 60 + (value % 100); 

爲什麼它的工作?

  • value/100移除的最後兩位數字(integer division),從而返回MMMMMM,和
  • value % 100返回最後兩位數字(modulo),即,SS
  • 該公式的其餘部分是MMMMMM * 60 + SS,這應該是不言自明的。
0

我猜它轉換成seconds.I'm文件基於格式是它可以保持最大值99999959,這將意味着999999分鐘和59秒。但這是純粹的猜想,一些樣本數據有助於支持這一想法。雖然你可能永遠不知道。

你至少應該能夠確定SS部分是否超過59,這是非常重要的知道。

var input = "02345612"; 
int minutes = int.Parse(input.Substring(0, 6)); 
int seconds = int.Parse(input.Substring(6, 2)); 
int totalSeconds = minutes * 60 + seconds;