使用C#实现的七个计时案例。
一
//输入时间开始进行倒计时 单位
public void timeOne()
{
int milliseconds = Convert.ToInt32(Console.ReadLine()); // 倒计时毫秒数
int interval = 1000; // 单次刷新间隔毫秒数
int elapsed = 0;
Console.Write("倒计时开始:");
while (elapsed < milliseconds)
{
Console.CursorLeft = 15;
Console.Write("{0}毫秒", milliseconds - elapsed);
Thread.Sleep(interval);
elapsed += interval;
}
Console.WriteLine();
Console.WriteLine("倒计时结束。");
Console.ReadKey();
}
显示结果图
二
//该方法接收输入的倒计时时间(秒),然后在控制台上显示倒计时的剩余时间。当倒计时结束时,程序将显示“倒计时结束!”。
public void timeTwo()
{
Console.WriteLine("请输入倒计时时间(秒):");
int seconds = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("倒计时开始!");
for (int i = seconds; i >= 0; i--)
{
Console.Write("\r{0}", TimeSpan.FromSeconds(i).ToString(@"hh\:mm\:ss\:fff"));
Thread.Sleep(1000);
}
Console.WriteLine("\n倒计时结束!");
Console.ReadLine();
}
效果图
三
// 通过按回车进行计时
public void timeThree()
{
Console.WriteLine("按下回车键开始计时...");
Console.ReadLine();
// 获取当前时间
DateTime startTime = DateTime.Now;
while (true)
{
// 计算已经经过的时间
TimeSpan elapsedTime = DateTime.Now - startTime;
Console.Clear();
Console.WriteLine("计时中...");
Console.WriteLine($"已经过 {elapsedTime.ToString(@"hh\:mm\:ss\:fff")}");
// 延迟一秒钟
System.Threading.Thread.Sleep(1000);
}
}
效果图
四
//使用一个简单的for循环和Thread.Sleep()方法来减少计时器每秒的秒数。输出格式为小时:分钟:秒,当计时器结束时,将输出"时间到了!按Enter键退出应用程序。
public void timeFour()
{
Console.Write("请输入倒计时时间: ");
int seconds = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("开始倒计时...");
for (int i = seconds; i >= 0; i--)
{
Console.WriteLine("{0:D2:}:{1:D2}:{2:D2}", i / 3600, (i / 60) % 60, i % 60);
Thread.Sleep(1000);
}
Console.WriteLine("时间到了!");
Console.ReadLine();
}
效果图
五
public void timeFive()
{
Console.Write("请输入倒计时时间(秒):");
int seconds = int.Parse(Console.ReadLine());
for (int i = seconds; i >= 0; i--)
{
Console.Clear(); // 清空控制台
Console.WriteLine("倒计时还有{0}秒", i);
Thread.Sleep(1000); // 暂停 1 秒钟
}
Console.Clear(); // 清空控制台
Console.WriteLine("倒计时结束!");
Console.ReadKey();
}
效果图
六
//计时器 增加秒数
public void timeSix()
{
int seconds = 0;
while (true)
{
Console.Clear(); //清空控制台
Console.WriteLine("计时器: {0} 秒", seconds);
Thread.Sleep(1000); //线程休眠1秒
seconds++; //增加秒数计数器
}
}
效果图
七
// 按下回车开始进行计时 再次按下回车则返回计时时间
public void timeSeven()
{
Console.WriteLine("按下 Enter 开始计时,按下 Enter 停止计时。");
while (true)
{
if (Console.ReadKey().Key == ConsoleKey.Enter)
{
var watch = new System.Diagnostics.Stopwatch();
watch.Start();
Console.WriteLine("计时开始,请按下 Enter 停止计时。");
Console.ReadKey();
watch.Stop();
Console.WriteLine($"计时结束,用时 {watch.Elapsed.Hours} 小时 {watch.Elapsed.Minutes} 分钟 {watch.Elapsed.Seconds} 秒 {watch.Elapsed.Milliseconds} 毫秒。");
break;
}
}
Console.ReadKey();
}
效果图