码迷,mamicode.com
首页 > Windows程序 > 详细

c# 获取北京时间更新本地计算机

时间:2015-12-30 10:34:35      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Text.RegularExpressions;
using System.IO;
using System.Runtime.InteropServices;

namespace pandian.cs
{
    public class UpdateDateTime
    {
        public static DateTime dt = DateTime.Now;
        public static void UpdateTime()
        {
            try
            {

                Uri uri = new Uri("http://www.beijing-time.org/time15.asp");
                System.Windows.Forms.WebBrowser browser = new System.Windows.Forms.WebBrowser();
                browser.DocumentCompleted += browser_DocumentCompleted;
                browser.Navigate(uri);
            }
            catch
            {

            }
        }

        static void browser_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
        {
            try
            {

                string html = (sender as System.Windows.Forms.WebBrowser).Document.Body.OuterHtml;
                if (html.Last() == ;)
                {
                    html = html.Remove(html.Length - 1);
                }
                string[] arr = html.Split(;);
                SystemTime st = new SystemTime();
                foreach (string str in arr)
                {

                    switch (str.Split(=)[0].Trim().ToLower())
                    {
                        case "nyear":
                            st.year = Convert.ToUInt16(str.Split(=)[1]);
                            break;
                        case "nmonth":
                            st.month = Convert.ToUInt16(str.Split(=)[1]);
                            break;
                        case "nday":
                            st.day = Convert.ToUInt16(str.Split(=)[1]);
                            break;
                        case "nhrs":
                            st.hour = Convert.ToUInt16(str.Split(=)[1]);
                            break;
                        case "nmin":
                            st.minute = Convert.ToUInt16(str.Split(=)[1]);
                            break;
                        case "nsec":
                            st.second = Convert.ToUInt16(str.Split(=)[1]);
                            break;
                    }
                }

                SetLocalTime(st);
            }
            catch
            {

            }

        }

        /// <summary>
        ///系统时间类
        /// </summary>
        [StructLayout(LayoutKind.Sequential)]
        public class SystemTime
        {
            public ushort year;
            public ushort month;
            public ushort dayofweek;
            public ushort day;
            public ushort hour;
            public ushort minute;
            public ushort second;
            public ushort milliseconds;
        }

        [DllImport("Kernel32.dll")]
        private static extern Boolean SetLocalTime([In, Out] SystemTime st);

    }
}

 

c# 获取北京时间更新本地计算机

标签:

原文地址:http://www.cnblogs.com/caoyc/p/5087928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!