WPF判断日期是工作日还是节假日_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > WPF判断日期是工作日还是节假日

WPF判断日期是工作日还是节假日

 2014/10/11 15:24:09  眾尋  程序员俱乐部  我要评论(0)
  • 摘要:通过API(http://www.easybots.cn/holiday_api.net)获取返回信息写一个接收的反馈的函数IsHolidaypublicstringIsHoliday(stringdate){stringurl=@"http://www.easybots.cn/api/holiday.php?d=";url=url+date;HttpWebRequesthttpRequest=(HttpWebRequest)WebRequest.Create(url);httpRequest
  • 标签:工作

通过API(http://www.easybots.cn/holiday_api.net)获取返回信息

写一个接收的反馈的函数IsHoliday

class="code_img_closed" src="/Upload/Images/2014101115/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('41926218-0f9a-49b1-af68-23f7769cbde0',event)" src="/Upload/Images/2014101115/2B1B950FA3DF188F.gif" alt="" />
public string IsHoliday(string date)
        {
            string url = @"http://www.easybots.cn/api/holiday.php?d=";
            url = url + date;
            HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(url);
            httpRequest.Timeout = 2000;
            httpRequest.Method = "GET";
            HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse();
            StreamReader sr = new StreamReader(httpResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312"));
            string result = sr.ReadToEnd();
            result = result.Replace("\r", "").Replace("\n", "").Replace("\t", "");
            int status = (int)httpResponse.StatusCode;
            sr.Close();
            return result;
        }
节假日函数

根据API,可以发现返回的内容有以下三种
{"20130101":"2"}

{"20130103":"1"}

{"20130201":0}

由于我们只需要判断是否为工作日,因此需要判断两种,即为0或者不为0。

为0的情况不存在“”,1和2存在“”,这个要注意

通过最简单的字段截取方式

substring(s.length-2,1);

判断截取的字段是否为0,就可以了

然后给datepicker控件写一个MouseLeave事件

private void DP_MouseLeave(object sender, MouseEventArgs e)
        {
            string date = Convert.ToDateTime(DP.Text.ToString()).ToString("yyyyMMdd");
            string num = IsHoliday(date).Substring(IsHoliday(date).Length-2, 1);
            switch(num)
            {
                case "0":
                    TB.Text = "工作日";
                    break;
                default:
                    TB.Text = "节假日";
                    break;
            }
        }        
时间控件的离开事件

效果图如下

当然了,前两天新闻说的北京11月7日到12日部分单位放假,这个是不支持的。

 

发表评论
用户名: 匿名