2012-03-05 82 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;