0

ミリ秒を人間が読める文字列に変換したい。

つまり、1:59:23(1時間59分23秒)のようになります。

私はこれを試しました:

    int hours = (metaData["duration"].toInt()/(1000 * 60 * 60));
    int mins = (metaData["duration"].toInt()/(1000 * 60));
    int seconds = (metaData["duration"].toInt()/1000);

しかし、これは合計を与えるだけです。つまり、分と秒の合計が表示されます。60秒が分になることは考慮されていないため、秒数には含めないでください。

誰かがこれを行う方法がありますか?

ありがとう

4

3 に答える 3

1

モジュラス関数を使用して、分と秒の数を抽出する必要があります。

int hours = (metaData["duration"].toInt()/(1000 * 60 * 60));
int mins = (metaData["duration"].toInt()/(1000 * 60)) % 60;
int seconds = (metaData["duration"].toInt()/1000) % 60;

モジュラス関数は、何かで割ったときに余りを返します。したがって、% 60あなたを使用すると、秒数になり、完全な分を無視し、同様に数分間になります。

于 2013-02-17T15:21:13.873 に答える
1

コードを少し変更するだけです。

int hours = (metaData["duration"].toInt()/(1000 * 60 * 60));
// 60 mins = 1 hour
int mins = (metaData["duration"].toInt()/(1000 * 60)) % 60;
// 60 secs = 1 min
int seconds = (metaData["duration"].toInt()/1000) % 60;
于 2013-02-17T15:21:43.797 に答える