C# 用C语言将时间转换为格式化字符串#

C# 用C语言将时间转换为格式化字符串#,c#,time,string-formatting,C#,Time,String Formatting,Time.ToString(“0.0”)显示为十进制“1.5”,而不是1:30。如何使其以时间格式显示 private void xTripSeventyMilesRadioButton_CheckedChanged(object sender, EventArgs e) { //calculation for the estimated time label Time = Miles / SeventyMph; this.xTripEstimateLabel.Visi

Time.ToString(“0.0”)
显示为十进制“1.5”,而不是1:30。如何使其以时间格式显示

private void xTripSeventyMilesRadioButton_CheckedChanged(object sender, EventArgs e)
{
    //calculation for the estimated time label
    Time = Miles / SeventyMph; 
    this.xTripEstimateLabel.Visible = true;
    this.xTripEstimateLabel.Text = "Driving at this speed the estimated travel time in hours is: " + Time.ToString("0.0") + " hrs";
}
格式:

HH:mm  =  01:22  
hh:mm tt  =  01:22 AM  
H:mm  =  1:22  
h:mm tt  =  1:22 AM  
HH:mm:ss  =  01:22:45  
编辑:因为现在我们知道时间是
双倍的
将代码更改为(假设您需要小时和分钟):


我猜
Time
属于
TimeSpan
类型?在这种情况下,可以帮助你,特别是网页

如果时间是数字数据类型,则可以先使用将其转换为时间跨度


(编辑:TimeSpan格式字符串在.NET 4中引入。)

如果
Time
System.Double
,则
System.TimeSpan.FromHours(Time.ToString()

如果时间是浮动的或双倍的,你就必须这样做。 System.Math.Truncate(时间)以获取小时数

然后(Time-System.Math.Truncate(Time))*60
获取会议记录。

请注意,如果您在24小时工作,使用
HH:mm
而不是
HH:mm
是非常重要的


有时我错误地写了
hh:mm
,然后我得到的不是“13:45”,而是“01:45”,并且没有办法知道是上午还是下午(除非你使用
tt
)。

感谢所有的回复,我使用了这个
DateTime.MinValue.AddHours(Time).ToString(“H:mm”),因为它是最容易实现的程序。

从数值变量创建时间跨度:

TimeSpan ts = new TimeSpan(Math.Floor(Time), (Time - Math.Floor(Time))*60);

然后,使用ToString方法。

时间是什么类型的?它是浮动的吗?是的,它是双精度的,但我对C#和编程一般来说是新手。这是我在课堂上的第二个作业,请你详细说明一下如何使用它。我会做腿部工作,只需要方向。(System.TimeSpan.FromHours(Time).ToString())非常有用,谢谢,但是我如何将字符串连接到8:30而不是00:00:00.00000string.Format(“{0:HH:mm}”,DateTime.MinValue+TimeSpan.FromHours(Time)),以防您想知道,其他用户提出的更优雅的方法是对.NET 4.0的新添加。这对我也很有用,不过我要补充的是,在执行.ToString()、CultureInfo.InvariantCulture或CultureInfo.CurrentCulture(Microsoft FxCop也建议这样做)
Time.ToString(“hh:mm”)时传入区域性是一种很好的做法
给我一个格式异常。(冒号似乎必须转义,但转义\也需要转义,因此您的结果是:
Time.ToString(“hh\\:mm”)
// This will handle over 24 hours
TimeSpan ts= System.TimeSpan.FromHours(Time);
string.Format("{0}:{1}", System.Math.Truncate(ts.TotalHours).ToString(), ts.Minutes.ToString());
// Keep in mind this could be bad if you go over 24 hours
DateTime.MinValue.AddHours(Time).ToString("H:mm");
TimeSpan ts = new TimeSpan(Math.Floor(Time), (Time - Math.Floor(Time))*60);