2012-03-05 5 views
0

私はMMMMMMSSの形式で特定のイベントの期間を記載したファイルを持っています。どのような種類のこれは時間の長さと秒に変換する方法を知っています。私はC#の言語を使用していますMMMMMMSSこれはどのような期間形式ですか?

+2

入力と出力の例を挙げることができますか? –

+1

6行目の 'M'は[標準](http://msdn.microsoft.com/en-us/library/az4se3k1.aspx)または[カスタム](http://msdn.microsoft.com/ en-us/library/8kb3ddd4.aspx)形式の文字列です。 – Oded

+0

4より長い 'M 'の文字列は、月の長い名前(例えば" 8月 ")を返す' MMMM'として解釈されます。問題は何にも対応していない「SS」である。一方、 'ss'は、左にゼロを詰めた秒です。おそらく、それは.NET形式の文字列ではないはずです。 – Shibumi

答えて

3

フォーマットは本当にM...MSS(整数valueとして供給)されている場合は、秒に変換することは非常に簡単です:

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

なぜそれが動作しますか?

    value/100
  • 従ってMMMMMMを返し、下二桁(integer division)を除去し、
  • value % 100戻り下二桁(modulo)、即ち、SS
  • 残りの式はMMMMMM * 60 + SSです。これはかなりわかりやすいはずです。
0

私の推測そのフォーマットに基づいて、それは最大値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; 
関連する問題