我有一个float
是几秒钟的量,我想在格式hh:mm:ss
从24小时代表一个倒计时的字符串。我试图用这个代码:
TimeToMissionsReady = 86400f - FromMissionCompletedSeconds;
TimeToMissionsReadyString = string.Format ("{0:00}:{1:00}:{2:00}", TimeToMissionsReady / 3600f, (TimeToMissionsReady / 60f) % 60f, TimeToMissionsReady % 60f);
Debug.Log (TimeToMissionsReadyString);
但它不工作“的原因它表明像奇怪的东西:24:60:30之后第二24:59:29
难道我做错了什么?
你甚至没有告诉我们什么是TimeToMissionsReady
的类型和值准确,我不明白的24:60:30的含义,似乎第二24:59:29判决,但为您解决问题的正确方法后使用TimeSpan
结构在.NET框架。
比方说,你TimeToMissionsReady
是86300
作为float
。
float TimeToMissionsReady = 86300f;
您可以使用TimeSpan.FromSeconds(double)
method来计算这些值。
TimeSpan ts = TimeSpan.FromSeconds(TimeToMissionsReady);
你还可以用像Custom TimeSpan Format Strings格式化;
Debug.Log(ts.ToString("hh\\:mm\\:ss")); // 23:58:20
纪要值由格式function.You可以这样做四舍五入:
string TimeToMissionsReadyString = string.Format("{0:00}:{1:00}:{2:00}", TimeToMissionsReady / 3600f, Math.Truncate((TimeToMissionsReady / 60f)) % 60f, TimeToMissionsReady % 60f);
但我相信,时间跨度是非常容易使用。下面是一个使用时间跨度的简单示例:
float f = 86400f;
TimeSpan t = TimeSpan.FromSeconds(f);
string s = string.Format("{0}:{1}:{2}", ((int) t.TotalHours), t.Minutes, t.Seconds);