如何将用户输入格式化为时间
本文关键字:格式化 时间 输入 用户 | 更新日期: 2023-09-27 18:32:55
我正在用 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());
}
有人可以帮我弄清楚如何格式化吗?我上网发现了日期时间,但它也需要日期,我不需要为这个家庭作业添加它。提前非常感谢!
您可以使用 Console.WriteLine 提供的字符串格式:
Console.WriteLine("{0}:{1:00}:{2:00}", pHour, pMinutes, Seconds);
有点断章取义。另一种方法是使用DateTime
类输出字符串
DateTime.Now.ToString("yyyy MM dd HH:mm:ss.fff tt", [System.Globalization.CultureInfo]::GetCultureInfo("en-US"));
这种方法的优点是易于在日期中插入分隔符。缺点是您无法在格式字符串中插入普通文本。
您可以使用 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
请注意,在某些情况下,如果您传入超出范围的值,就会发生奇怪的事情,因此请务必验证您的输入! :)