与网络时间同步的时间处理函数代码

作者:小菜 更新时间:2025-02-25 点击数:
简介:时间准确的重要性不言而喻,有时候我们对时间的要求非常严格,有时候也要求不允许用户调整系统时间,有时候。

等等情况下,我们都需要时间的同步,虽然Windows也

【菜科解读】

时间准确的重要性不言而喻,有时候我们对时间的要求非常严格,有时候也要求不允许用户调整系统时间,有时候。

等等情况下,我们都需要时间的同步,虽然Windows也有DOS命令来保持和时钟服务进行同步,但本文另辟途径,介绍另一种获取标准时间并同步时间的操作。

首先,我们来看看一个网站:国家授时中心(http://www.time.ac.cn/stime.asp),这个是应该是时间的权威机构,里面有各国各地的时间,我们可以通过同步该时间来实现系统时间的更新。

首先分两步,一步是获取“国家授时中心”的时间,一步是更新系统时间。

下面的代码就是做这些工作。

#region 获取网络时间/// /// 获取中国国家授时中心网络服务器时间发布的当前时间/// /// public static DateTime GetChineseDateTime(){DateTime res = DateTime.MinValue;try{string url = "http://www.time.ac.cn/stime.asp";HttpHelper helper = new HttpHelper();helper.Encoding = Encoding.Default;string html = helper.GetHtml(url);string patDt = @"\d{4}年\d{1,2}月\d{1,2}日";string patHr = @"hrs\s+=\s+\d{1,2}";string patMn = @"min\s+=\s+\d{1,2}";string patSc = @"sec\s+=\s+\d{1,2}";Regex regDt = new Regex(patDt);Regex regHr = new Regex(patHr);Regex regMn = new Regex(patMn);Regex regSc = new Regex(patSc);res = DateTime.Parse(regDt.Match(html).Value);int hr = GetInt(regHr.Match(html).Value, false);int mn = GetInt(regMn.Match(html).Value, false);int sc = GetInt(regSc.Match(html).Value, false);res = res.AddHours(hr).AddMinutes(mn).AddSeconds(sc);}catch { }return res;}/// /// 从指定的字符串中获取整数/// ///

原始的字符串///

是否完全匹配,若为false,则返回字符串中的第一个整数数字/// 整数数字private static int GetInt(string origin, bool fullMatch){if (string.IsNullOrEmpty(origin)){return 0;}origin = origin.Trim();if (!fullMatch){string pat = @"-?\d+";Regex reg = new Regex(pat);origin = reg.Match(origin.Trim()).Value;}int res = 0;int.TryParse(origin, out res);return res;}#endregion#region P/Invoke 设置本地时间[DllImport("kernel32.dll")]private static extern bool SetLocalTime(ref SYSTEMTIME time);[StructLayout(LayoutKind.Sequential)]private struct SYSTEMTIME{public short year;public short month;public short dayOfWeek;public short day;public short hour;public short minute;public short second;public short milliseconds;}/// /// 设置本地计算机时间/// ///

DateTime对象public static void SetLocalTime(DateTime dt){SYSTEMTIME st;st.year = (short)dt.Year;st.month = (short)dt.Month;st.dayOfWeek = (short)dt.DayOfWeek;st.day = (short)dt.Day;st.hour = (short)dt.Hour;st.minute = (short)dt.Minute;st.second = (short)dt.Second;st.milliseconds = (short)dt.Millisecond;SetLocalTime(ref st);}#endregion两步操作就可以搞定时间的同步,测试效果还是不错,不过不建议频繁进行时间的同步处理,间隔一段时间检查一次即可。

如果你有更好的方法,希望大家交流提高。

与,网络,时间,同步,的,处理,函数,代码,时间,

win10与电视同屏要如何操作

win10如何投屏到电视上播放?现在基本上大家家里都会有一台大屏幕的电视了吧,电脑的屏幕还是小了点,那么怎么将电脑投屏到电视上呢,接下来跟小编一起来看下win10投屏到电视方法教程吧。

1、打开Windows10电脑,点击进入任务栏右侧的那个气泡图案的操作中心,2、点击操作中心底部众多功能快捷键中的“连接”跳转到连接界面。

在这个界面中可以显示当前电脑能进行无线连接的设备,如无线显示器和音频设备等3、点击界面底部的“投影到这台电脑”,跳转到设置窗口。

4、“投影到这台电脑”的设置界面其实是对这台电在接收到投屏信号后进行显示的设置,也就是说当前设置的电脑是接收信号的机器而不是发送投屏信号的机器,因为发射投屏需求的电脑并不需要任何的设置,只需要平台中带有无线网卡功能即可。

5、在设置界面中,对Windows 电脑或手机可以投影这台电脑的选择里面,选择除“始终关闭”以外的任意选项。

同时在“要求投影到这台电脑”的选项中,建议选择“仅第一次”进行识别,除非你担心有人捉弄你在你工作的时候进行投屏操作的话,可以选择“每次请求连接时”的选项。

6、 需要PIN才能进行适配”选项建议还是开启,这样能避免出现非法投屏链接的状况发生。

而在进行无线投屏的操作也是相当的简单,但首先两台带有无线网卡功能的电脑PC、笔记本电脑在同一网络内。

7、点击击进入任务栏右侧操作中心,并点击进入“连接”中的列表或在“投影”中选择“连接到无线显示器”选择对应的无线显示器。

8、对应被连接的另外一台PC的显示器将会提示连接信息,如果设置了PIN码适配的话,这时也在被连接的PC显示器上会提示PIN码,输入PIN码后就会进行适配,如果适配成功的话则会进入多屏展示模式,识别失败的话,则会提示识别原因。

以上就是win10与电视同屏的操作啦,希望能帮助到大家。

win10与电脑同屏,win10与电视同屏要怎么操作,怎么将电脑同屏到电视上

1602模块的设定,读写,与光标控制指令

1602模块的设定,读写,与光标控制都是通过指令来完成,共有11条指令,如下:指令1:清显示,光标复位到地址00H位置。

指令2:光标复位,光标返回到地址00H。

指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或者右移。

高电平表示有效,低电平则无效。

指令4:显示开关控制。

D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。

R/L,高向左,低向右。

指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。

(有些模块是 DL:高电平时为8位总线,低电平时为4位总线)指令7:字符发生器RAM地址设置,地址:字符地址*8+字符行数。

(将一个字符分成5*8点阵,一次写入一行,8行就组成一个字符)指令8:置显示地址,第一行为:00H——0FH,第二行为:40H——4FH。

指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:写数据。

指令11:读数据。

1602,模块,的,设定,读写,与,光标,控制,指令,160

加入收藏
               

与网络时间同步的时间处理函数代码

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录