c#中关于Datatime在定时中的应用与启发

来源:互联网 发布:其言兹若人之俦乎的其 编辑:程序博客网 时间:2024/05/18 15:04

        技术是一个不断磨练、反复记忆的过程,但是很多时候一些东西很有用,但由于应用不多渐渐生疏,这时候,笔记是最好的选择,这也是我写这篇文章的初衷。

        做一个简单的定时重启PC服务,在datatime上遇到了一些小麻烦,花了近一个小时,严重影响效率。需求很简单,每天中午12:00定时重启PC。想到两个简单的逻辑实现:

一、开机时服务启动获取当前时间与12:00的差值,启动timer倒计时来实现定时关机

二、timer实时获取当前时间,当前时间=12:00时,重启PC

        两种方法都很好实现,第一种方法需要注重一些细节,首先是获取的datetime.now的格式,这些网上有很多文章点击打开链接,注意到我们只想获取当天时间,年份、日期通通不要,所以我们采用DateTime.Now.TimeOfDay来获取,但是问题来了, DateTime.Now.TimeOfDay获取的是一个TimerSpan类型的值,该如何用TotalSeconds去获取时间差值,System.DateTime和System.TimeSpan的区别及应用参考点击打开链接,写一行设置时间代码,可以设置时间为12:00

TimeSpan ts = new TimeSpan(12, 00, 0);

        然后发现两者都有TotalSeconds方法,那么问题就好解决。下面是获取时间差值的几行代码

            TimeSpan t1 = DateTime.Now.TimeOfDay;            TimeSpan t2 = new TimeSpan(12, 00, 0);            int numOfSec = (int)(t1 -t2).TotalSeconds;

        好吧,花半小时写了这篇笔记,偷个懒,继续工作了

原创粉丝点击