如何显示double作为日期时间格式(HH:mm:ss)?
又是关于double和时间格式(HH:mm:ss)的问题。如何显示double作为日期时间格式(HH:mm:ss)?
我想从现在开始,每隔5分钟的时间间隔进行分割。
为了做到这一点,我执行计算是这样的:
private string Get_now(int minus)
{
DateTime n = DateTime.Now.AddMinutes(0 - minus);
double now = ((n.Hour > 12) ? n.Hour - 12 : n.Hour) * 10000
+ ((n.Minute > 60) ? n.Minute - 60 : n.Minute) * 100
+ ((n.Second > 60) ? n.Second - 60 : n.Second);
string string_now = Convert.ToString(now);
return string_now;
}
计算结果都会给我双号,例如,如果现在时间是3时50分〇〇秒,如果我把Get_now(0),“now”将是35000;如果我把Get_now(5),“现在”将是345000.
这是我如何打印“现在”文本框。
textBox1.Text = Get_now(0);
textBox2.Text = Get_now(5);
textBox3.Text = Get_now(10);
textBox4.Text = Get_now(15);
textBox5.Text = Get_now(20);
这里是我赢形式的结果:
正如你可以看到,所有的Get_now结果是显示为双重价值。
我要的是在时间格式为00:00:00
显示这意味着,其结果必须证明是这样的:
42352 --> 04:23:52
41852 --> 04:18:52
41352 --> 04:08:52
40852 --> 04:08:52
40352 --> 04:03:52
否则,如果你有更好的办法减去每5分钟(修复时间间隔)中的时间并将其显示为字符串格式,请随时在此处放置您的评论。
为什么你把时间换算成双倍?可能会是简单的?
private static string Get_now(int minus)
{
return DateTime.Now.AddMinutes(-minus)
.ToString("HH:mm:ss");
}
+1解决一个真正的问题。我的答案是**太窄,即使仍然解决了OP问题。 – 2013-03-22 08:01:54
那么......最初我是这么做的,因为我想将数据类型从时间格式更改为双倍,最终,我决定改变主意,以字符串格式显示..结果,我开启了一个大四周。 TQ! – jhyap 2013-03-22 08:13:05
使用此语句double
转换为string
您Get_now
方法内部
string string_now = now.ToString("0#:##:##", CultureInfo.InvariantCulture);
将返回09:21:24
为Get_now(15)
呼叫
InvariantCulture
是可选的,但它可以保护你免受特定的文化环境
谢谢。我在其他类似的帖子中也看到了这个声明..但是我尝试“00:00:00”并且它不工作...所以我实际上应该将0更改为#...非常感谢你 – jhyap 2013-03-22 07:44:58
任何特别的原因经常['则DateTime.ToString( “HH:MM:SS”)'](http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx)不工作为你? – 2013-03-22 07:43:23