com我正在为我的编程考试制作一个项目,这将是一个简单的考试,因此我只需要创建一个简单的基本控制台应用程序。但是,即使它很简单,我真的想要加强它。 我已经制作了一个简单的时钟:
static public void clock()
{
Console.SetCursorPosition(0, 0);
Console.WriteLine("{0:D} {0:t}", DateTime.Now);
Console.WriteLine("");
}
我在程序中使用名称" clock;"如下所示:
Console.Clear();
clock();
Console.WriteLine("┌───────────────────────────────────┐");
Console.WriteLine("| Welcome to the Festival |");
Console.WriteLine("└───────────────────────────────────┘");
是否可以为时钟添加秒数,并使其连续更新,并以简单的方式执行此操作?新手程序员可以解释的方式,因为我需要这样做。 谢谢!
答案 0 :(得分:0)
要在时间输出中包含秒数,您可以使用
Console.WriteLine("{0:D} {0:T}", DateTime.Now);
要更新时间,您可以使用System.Timer,或者如果您想要快速简单的东西(虽然有点hacky),您可以使用带System.Threading.Sleep(500)
的循环并调用其中的clock方法。当然,这将永远运行(或直到你关闭命令窗口)。
答案 1 :(得分:0)
这绝对不是万无一失的,因为没有“简单”的方法可以正确地做到这一点......但它可能适用于您的目的:
static void Main(string[] args)
{
Task.Run(() => {
while (true)
{
// save the current cursor position
int x = Console.CursorLeft;
int y = Console.CursorTop;
// update the date/time
Console.SetCursorPosition(0, 0);
Console.Write(DateTime.Now.ToString("dddd, MMMM d, yyyy hh:mm:ss"));
// put the cursor back where it was
Console.SetCursorPosition(x, y);
// what one second before updating the clock again
System.Threading.Thread.Sleep(1000);
}
});
Console.SetCursorPosition(0, 2);
Console.WriteLine("┌───────────────────────────────────┐");
Console.WriteLine("| Welcome to the Festival |");
Console.WriteLine("└───────────────────────────────────┘");
Console.WriteLine("");
Console.Write("Please enter your name: ");
string name = Console.ReadLine();
Console.WriteLine("Hello {0}!", name);
Console.WriteLine("");
Console.Write("Press Enter to Quit...");
Console.ReadKey();
}