我的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
我做错了吗?
答案 0 :(得分:5)
你没有甚至告诉我们TimeToMissionsReady
的类型和价值究竟是什么,我不明白 24:60的含义: 30和在第二个24:59:29 句子之后,但解决问题的正确方法似乎是在.NET Framework中使用TimeSpan
结构。
让我们说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
答案 1 :(得分:2)
分钟值由格式化函数舍入。您可以这样做:
public class MongoDB {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
DatabaseEntry entry = new DatabaseEntry("toolhouse", 18, 16,"Property");
System.out.println(new Gson().toJson(objToSave));
}
}
但我相信TimeSpan更容易使用。以下是使用TimeSpan的简单示例:
string TimeToMissionsReadyString = string.Format("{0:00}:{1:00}:{2:00}", TimeToMissionsReady / 3600f, Math.Truncate((TimeToMissionsReady / 60f)) % 60f, TimeToMissionsReady % 60f);