判斷日期是工作日還是節假日


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

寫一個接收的反饋的函數IsHoliday

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日部分單位放假,這個是不支持的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM