我在C#中编写一个简单的类,它所做的就是将三个浮点变量打印到DOS控制台(小时,分钟,秒)。输出是这样的:小时= 3,分钟= 15,秒= 0.但我想知道我将如何格式化它以显示3:15:00而不是小时= 3,分钟= 15,秒= 0
这是我创建的打印信息的方法:
/// <summary>
/// Prints the time to the console
/// </summary>
public void PrintTime()
{
Console.WriteLine(pHour.ToString() + ":" + pMinutes.ToString() + ":" + Seconds.ToString());
}
有人可以帮我弄清楚如何格式化吗?我上网了解了DateTime,但它也需要日期,我不需要为此作业添加。非常感谢提前!
答案 0 :(得分:4)
您可以使用Console.WriteLine提供的字符串格式:
Console.WriteLine("{0}:{1:00}:{2:00}", pHour, pMinutes, Seconds);
答案 1 :(得分:0)
有点脱离背景。另一种方法是使用DateTime
类来输出字符串
DateTime.Now.ToString("yyyy MM dd HH:mm:ss.fff tt", [System.Globalization.CultureInfo]::GetCultureInfo("en-US"));
此方法的优点是可以在Date中轻松插入分隔符。缺点是您无法在格式字符串中插入普通文本。
答案 2 :(得分:0)
您可以使用DateTime对象来表示您的时间,只是忽略日期部分。或者您可以使用TimeSpan对象来完成类似的壮举。
或者,完全忽略它们并按原样打印输入值:
int hours = 5;
int minutes = 55;
int seconds = 7;
DateTime dt = new DateTime(2014, 1, 1, hours, minutes, seconds);
TimeSpan ts = new TimeSpan(hours, minutes, seconds);
Console.WriteLine("{0:00}:{1:00}:{2:00}", dt.Hour, dt.Minute, dt.Second);
Console.WriteLine("{0:00}:{1:00}:{2:00}", ts.Hours, ts.Minutes, ts.Seconds); // This is actually not needed for using a TimeSpan, see next line.
Console.WriteLine(ts);
Console.WriteLine("{0:00}:{1:00}:{2:00}", hours, minutes, seconds);
在行动中 https://dotnetfiddle.net/6lUwnR
请注意,如果在某些情况下传入超出范围的值,则会发生奇怪的事情,因此请务必验证您的输入! :)