简直就是在嘲讽我这种没有工作的人,哈哈哈
窗体的倒计时相当的没有技术含量,主要是不够炫酷,不能够体现我们程序员的身份。
那什么才叫炫酷?必须是控制台啊!
电视剧上黑客噼里啪啦噼里啪啦滚屏的画面多炫酷!
所以,研究了一下怎么样在控制台上计时。
百度到了msdn的老帖子,所有的回答都是使用线程。那就用线程吧。
主要的计时方法就是使用 Thread.Sleep(1000); 方法,使主线程停止一秒。
然后循环使用线程调用传参方法 Thread thread = new Thread(delegate() { GetTime(dt); });
这个方法计算时间差然后输出时间。
这样就会完成一个bug(比心,用心创造BUG),虽然计算一下时间,再输出,基本上是用不了多少时间的,
但是几百次几千次以后就会导致两次输出时间里少了一秒,但对于最后的结果来说并无大碍。
(后知后觉,不用线程调用方法应该也可以,主要还是Thread.Sleep(1000);)
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading; 6 7 namespace Timer 8 { 9 class Program 10 { 11 static bool isEnd = false; 12 13 static void Main(string[] args) 14 { 15 //控制台标题 16 Console.Title = "Timer"; 17 //控制台宽度 18 Console.WindowWidth = 50; 19 //控制台高度25是最低 20 Console.BufferHeight = 25; 21 Console.WriteLine("现在的时间是"); 22 Console.WriteLine(DateTime.Now); 23 Console.WriteLine("输入截至时间"); 24 25 //获取设定时间 26 DateTime dt = Convert.ToDateTime(Console.ReadLine()); 27 //获取开始时间 28 DateTime dtNow = Convert.ToDateTime(DateTime.Now); 29 30 31 //调用线程获取时间 32 while (isEnd == false) 33 { 34 Thread thread = new Thread(delegate() { GetTime(dt); }); 35 thread.Start(); 36 Thread.Sleep(1000); 37 } 38 Console.ReadLine(); 39 } 40 41 42 43 //输出计时剩余时间 44 static void GetTime(DateTime dt) 45 { 46 //获取开始时间 47 DateTime dtNow = Convert.ToDateTime(DateTime.Now); 48 TimeSpan ts = dt - dtNow; 49 Console.ForegroundColor = ConsoleColor.Green; 50 Console.SetCursorPosition(8, 5); 51 Console.WriteLine(ts); 52 if (ts.TotalSeconds <= 1) 53 { 54 Console.SetCursorPosition(0, 9); 55 Console.WriteLine("计时已完成"); 56 isEnd = true; 57 } 58 } 59 } 60 }
Console.ForegroundColor = ConsoleColor.Green; 改变输出字符的颜色为绿色。
Console.SetCursorPosition(8, 5); 是改变光标的位置的语句,代表光标第5行第8个字符,这时候再进行输出就是在这里输出了。
这程序还是到处是BUG的,毕竟一天到晚写的是BUG,不是程序。
我的程序,使用的是.NET Framework 4.0,各位电脑上应该都有。
(密码:C2fyaK)
https://share.weiyun.com/076fa80d5a5b270c3f73b90e3fd77d48
输出的结果依然是原始详细的时间格式,不过稍作修改就会更美观一点,下面是一些有关时间的输出语句。
下载说明
☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,
☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!
☉唯一站长QQ:1004003180 [人格担保-本站注重诚信!]
☉购买建议E-mail:1004003180@qq.com 源码收购 E-mail:1004003180@qq.com
☉本站文件解压密码 【文章内都自带解压密码,每个密码不同!】