获取网络上的北京时间,如果大于设定的过期时间就...

设置一个过期时间 ,定义时间变量dd,dd获取网络上的北京时间,如果获取失败,就获取计算机当前时间,再比对dd与过期时间,如果dd大于过期时间,就执行...

        // 比对固定时间,看是否超时。
        private void CompareTime()
        {
            try
            {
                dd = GetBeijingTime();
                i = DateTime.Compare(dd, Convert.ToDateTime("2013-1-1 00:00:00"));
                if (i < 0)
                {
                    dd = DateTime.Today;
                }
            }
            catch
            {

            }

            i = DateTime.Compare(dd, Convert.ToDateTime("2014-5-5 00:00:00"));
            if (i > 0)
            {
                btnOpen.Enabled = false;
            }
        }

        // 获取北京时间
        public static DateTime GetBeijingTime()
        {
            //t0 = new Date().getTime();
            //nyear = 2011;
            //nmonth = 7;
            //nday = 5;
            //nwday = 2;
            //nhrs = 17;
            //nmin = 12;
            //nsec = 12;
            DateTime dt;
            WebRequest wrt = null;
            WebResponse wrp = null;
            try
            {
                wrt = WebRequest.Create("http://www.beijing-time.org/time.asp");
                wrp = wrt.GetResponse();

                string html = string.Empty;
                using (Stream stream = wrp.GetResponseStream())
                {
                    using (StreamReader sr = new StreamReader(stream, Encoding.UTF8))
                    {
                        html = sr.ReadToEnd();
                    }
                }

                string[] tempArray = html.Split(‘;‘);
                for (int i = 0; i < tempArray.Length; i++)
                {
                    tempArray[i] = tempArray[i].Replace("\r\n", "");
                }

                string year = tempArray[1].Substring(tempArray[1].IndexOf("nyear=") + 6);
                string month = tempArray[2].Substring(tempArray[2].IndexOf("nmonth=") + 7);
                string day = tempArray[3].Substring(tempArray[3].IndexOf("nday=") + 5);
                string hour = tempArray[5].Substring(tempArray[5].IndexOf("nhrs=") + 5);
                string minite = tempArray[6].Substring(tempArray[6].IndexOf("nmin=") + 5);
                string second = tempArray[7].Substring(tempArray[7].IndexOf("nsec=") + 5);
                dt = DateTime.Parse(year + "-" + month + "-" + day + " " + hour + ":" + minite + ":" + second);
            }
            catch (WebException)
            {
                return DateTime.Parse("2011-4-1");
            }
            catch (Exception)
            {
                return DateTime.Parse("2011-1-1");
            }
            finally
            {
                if (wrp != null)
                    wrp.Close();
                if (wrt != null)
                    wrt.Abort();
            }
            return dt;
        }
时间: 2024-08-06 15:57:25

获取网络上的北京时间,如果大于设定的过期时间就...的相关文章

Android网络编程之获取网络上的XML

Android网络编程之获取网络上的XML 请尊重他人的劳动成果,转载请注明出处:Android网络编程之获取网络上的XML 为要获取网络上的XML所以需要服务器端提供的支持. 一.创建服务器端: 服务器端项目结构: 服务器端运行效果图: 第一步:创建业务所需的JavaBean package com.jph.server.model; import java.util.Date; /** * 新闻实体类 * @author jph * Date:2014.09.26 */ public cla

Android网络编程之获取网络上的Json

Android网络编程之获取网络上的Json 请尊重他人的劳动成果,转载请注明出处:Android网络编程之获取网络上的Json 为要获取网络上的Json所以需要服务器端提供的支持. 一.创建服务器端: 服务器端项目结构: 服务器端运行效果图: 第一步:创建业务所需的JavaBean package com.jph.sj.model; import java.util.Date; /** * 新闻实体类 * @author jph * Date:2014.09.26 */ public clas

Android解析获取网络上的图片(支持bmp格式)

Android学习系列 - 显示网络上的图片(支持bmp格式)) 见如下代码: /** * 到Url地址上去下载图片,并回传Bitmap回來 * * @param imgUrl * @return */ public static Bitmap getBitmapFromUrl(String imgUrl) { URL url; Bitmap bitmap = null; try { url = new URL(imgUrl); InputStream is = url.openConnecti

安卓系列四(获取网络上的资源)

声明:这是学习总结,大家有需要的可以看看,不需要的也可以看看.好了直接上代码. 首先有一个获取取流中数据的工具类: import java.io.ByteArrayOutputStream; import java.io.InputStream; /**  * @author  wesley  * @version   * @date 2015年1月30日 下午2:12:28  *   */ public class StreamUtils { /**  * 读取流中的数据  * @param 

使用异步任务加载网络上json数据并加载到ListView中

Android中使用网络访问来加载网上的内容,并将其解析出来加载到控件中,是一种很常见的操作.但是Android的UI线程(也就是主线程)中是不允许进行耗时操作的,因为耗时操作会阻塞主线程,影响用户体验.而访问网络同样是一个耗时操作,并且Android3.0以后是不允许在主线程中访问网络的,所以我们这里用Android封装好的AsyncTask类来完成这些耗时操作. 项目的目录结构如下: AsyncTask是一个抽象类,实际上他是封装好的一个类,底层也是用handler和thread来实现的,我

(五)关于过期键(1)过期键的设置、获取和删除过期时间

设置过期 默认情况下键是没有生存时间的,也就是永不过期,除非清空内存. 设置的键的生存时间也很容易,可以通过4个命令设置(任选一即可):EXPIRE.PEXPIRE.EXPIREAT.PEXPIREAT命令,这4个命令看起来不同但是背后实现原理都是一样的.常用的其实就是EXPIRE和PEXPIRE这两个,前者是以秒设置过期时间,后者是以毫秒. 以秒来设置,设置aaa这个键1秒后过期,1秒中以后再获取aaa这个键则返回空. 以毫秒来设置,设置bbb这个键10毫秒后过期. 命令 说明 EXPIREk

Android(java)学习笔记204:自定义SmartImageView(继承自ImageView,扩展功能为自动获取网络路径图片)

1.有时候Android系统配置的UI控件,不能满足我们的需求,Android开发做到了一定程度,多少都会用到自定义控件,一方面是更加灵活,另一方面在大数据量的情况下自定义控件的效率比写布局文件更高. 2.下面我们是自定义一个SmartImageView继承自ImageView,扩展了ImageView的功能:     步骤: • 新建一个SmartImageView类,让继承自ImageView(放置特定的包下): • 实现SmartImageView类下的构造方法,最好全部实现,这个不容易出

Redis 过期键的设置、获取和删除过期时间

Redis 过期键的设置.获取和删除过期时间 转自http://blog.51cto.com/littledevil/1813956 设置过期 默认情况下键是没有生存时间的,也就是永不过期,除非清空内存. 设置的键的生存时间也很容易,可以通过4个命令设置(任选一即可):EXPIRE.PEXPIRE.EXPIREAT.PEXPIREAT命令,这4个命令看起来不同但是背后实现原理都是一样的.常用的其实就是EXPIRE和PEXPIRE这两个,前者是以秒设置过期时间,后者是以毫秒. 以秒来设置,设置aa

dns缓存刷新时间是多久?dns本地缓存时间介绍

原文: http://www.winwin7.com/JC/4742.html dns缓存刷新时间是多久?一般来说,我们只知道DNS解析是互联网绝大多数应用的实际寻址方式,在我们打开某站点,DNS返回了正确的IP之后,此时系统会将dns缓存保存到本地,当我们再次访问该站点的时候会自动调用本地保存的dns缓存从而达到立马打开网页,速度非常快!但是dns缓存文件也是有时间限制的,当到了一定的时限便会自动刷新,其中比较特殊的要属于浏览器 DNS缓存,浏览器DNS缓存的时间跟DNS服务器返回的TTL值无