是关于双倍和时间格式(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;
}
计算结果会给我双倍数,例如,如果现在时间是03:50:00,如果我把Get_now(0),“now”将是35000;如果我把Get_now(5),“now”将是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结果都显示为double值。
我想要的是以时间格式显示为00:00:00
这意味着,结果必须如下所示:
42352 --> 04:23:52
41852 --> 04:18:52
41352 --> 04:08:52
40852 --> 04:08:52
40352 --> 04:03:52
否则,如果您有更好的方法来减去每5分钟(修复时间间隔)的时间并将其显示为字符串格式,请随时在此处删除您的评论。
答案 0 :(得分:4)
为什么要将时间转换为双倍?可能只是简单吗?
private static string Get_now(int minus)
{
return DateTime.Now.AddMinutes(-minus)
.ToString("HH:mm:ss");
}
答案 1 :(得分:2)
使用此语句将double
方法中的string
转换为Get_now
string string_now = now.ToString("0#:##:##", CultureInfo.InvariantCulture);
将为09:21:24
电话
Get_now(15)
InvariantCulture
是可选的,但它可以保护您免受特定于文化的环境的影响