C# 如何显示双as日期时间格式(HH:mm:ss)?

C# 如何显示双as日期时间格式(HH:mm:ss)?,c#,winforms,datetime,double,C#,Winforms,Datetime,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.Minut

是关于双重和时间格式的问题,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;
}
42352 --> 04:23:52
41852 --> 04:18:52
41352 --> 04:08:52
40852 --> 04:08:52
40352 --> 04:03:52  
计算结果会给我一个双倍的数字,例如,如果现在的时间是03:50:00,如果我输入Get_now 0,那么现在将是35000;如果我把Get_now5放进去,现在的数字将是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);
下面是我在win form的结果:

如您所见,所有Get_now结果都显示为双值

我想要的是以时间格式显示为00:00:00

这意味着,结果必须如下所示:

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;
}
42352 --> 04:23:52
41852 --> 04:18:52
41352 --> 04:08:52
40852 --> 04:08:52
40352 --> 04:03:52  

否则,如果您有更好的方法在每5分钟固定时间间隔中减去时间,并将其显示为字符串格式,请随时在此处发表评论

使用此语句在Get\u now方法中将double转换为字符串

将于09:21:24返回Get_Now 15呼叫


InvariantCulture是可选的,但它可能会保护您免受特定于区域性的环境的影响

使用此语句在Get\u now方法中将double转换为字符串

将于09:21:24返回Get_Now 15呼叫


不变量文化是可选的,但它可以保护您免受特定文化环境的影响

为什么要将时间转换为双倍?也许会很简单

    private static string Get_now(int minus)
    {
        return DateTime.Now.AddMinutes(-minus)
            .ToString("HH:mm:ss");
    }

你为什么把时间改成双倍?也许会很简单

    private static string Get_now(int minus)
    {
        return DateTime.Now.AddMinutes(-minus)
            .ToString("HH:mm:ss");
    }

有没有什么特别的原因常规食品对你不起作用?有没有特别的原因常规食品对你不起作用?谢谢。我在其他类似的帖子中也看到了这句话。。但我尝试00:00:00,但它不起作用。。。所以我应该把0改成。。。非常感谢,谢谢。我在其他类似的帖子中也看到了这句话。。但我尝试00:00:00,但它不起作用。。。所以我应该把0改成。。。非常感谢你+1解决了一个真正的问题。我的答案太狭隘了,即使仍然解决了老年退休金计划的问题。。。最初我这样做是因为我想将数据类型从时间格式更改为双精度,最后,我决定改变主意,以字符串格式显示。。结果,我开始了一个大转弯。TQ+为了解决一个真正的问题。我的答案太狭隘了,即使仍然解决了老年退休金计划的问题。。。最初我这样做是因为我想将数据类型从时间格式更改为双精度,最后,我决定改变主意,以字符串格式显示。。结果,我开始了一个大转弯。TQ!!