是否是工作日和节假日判定
生活随笔
收集整理的這篇文章主要介紹了
是否是工作日和节假日判定
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
根據(jù)節(jié)假日表分析當(dāng)前日期是否屬于節(jié)假日配置表的時(shí)間以及判定當(dāng)前日期是否屬于雙休日
首先建一張節(jié)假日表PricingHoliday? ID? 節(jié)假日時(shí)間? HDate ? 是否工作日 HType ?2表示不上班? 非工作日, 1表示正常上班???? 工作日
判定代碼:
private string _strWorkingDayAM = "00:00";//工作時(shí)間private string _strWorkingDayPM = "23:59";private string _strRestDay = "6,7";//周幾休息日 周六周日為 6,7private TimeSpan dspWorkingDayAM;//工作時(shí)間private TimeSpan dspWorkingDayPM;//下午工作時(shí)間 clsArrayList myArrayList;/// <summary>/// 是否周休日/// </summary>/// <returns></returns>private bool m_IsWorkingDay(){string strWeekNow = this.m_GetWeekNow();//當(dāng)前周幾//判斷是否休息日for (int i = 0; i < myArrayList.p_Count; i++){if (strWeekNow == myArrayList.m_GetItem(i)){return false;}}//判斷當(dāng)前時(shí)間是否在工作時(shí)間段內(nèi) TimeSpan dspNow = DateTime.Now.TimeOfDay;//string date = DateTime.Now.ToShortDateString();if (dspNow > dspWorkingDayAM && dspNow < dspWorkingDayPM){return true;//是在工作時(shí)間內(nèi) }return false;//不是在工作時(shí)間內(nèi) }/// <summary>/// 初始化默認(rèn)值/// </summary>private void m_InitWorkingDay(){dspWorkingDayAM = DateTime.Parse(_strWorkingDayAM).TimeOfDay;dspWorkingDayPM = DateTime.Parse(_strWorkingDayPM).TimeOfDay;myArrayList = new clsArrayList(_strRestDay, ',');}/// <summary>/// 獲取當(dāng)前周幾/// </summary>/// <returns></returns>private string m_GetWeekNow(){string strWeek = DateTime.Now.DayOfWeek.ToString();switch (strWeek){case "Monday":return "1";case "Tuesday":return "2";case "Wednesday":return "3";case "Thursday":return "4";case "Friday":return "5";case "Saturday":return "6";case "Sunday":return "7";}return "0";}/// <summary>/// 初始化1是工作日 2 是非工作日/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void FrmManagement_Load(object sender, EventArgs e){this.m_InitWorkingDay();bool bol = this.m_IsWorkingDay();int resultYesOrNo = GetIsWorkDate();//雙休日和工作日判斷if ((bol.ToString().Equals(true)) && resultYesOrNo == 1){this.labelX1.Text = "今天是工作日,非節(jié)假日";}else if (resultYesOrNo == 1){this.labelX1.Text = "今天是工作日,非節(jié)假日";}else if ((bol.Equals(true))){this.labelX1.Text = "今天是工作日";}else{this.labelX1.Text = "今天是節(jié)假日非工作日";}}/// <summary>/// 獲取是否工作日的類型 1工作日 2 非工作日/// </summary>/// <returns></returns>public int GetIsWorkDate(){string date = DateTime.Now.ToString("yyyy-MM-dd");string sqlWork = "SELECT HType FROM PricingHoliday WHERE HDate='" + date + "'";int iresult = 0;string htype = null;try{DataTable dt = helper.Selectinfo(sqlWork);for (int i = 0; i < dt.Rows.Count; i++){//從數(shù)據(jù)庫得到字段的值htype = dt.Rows[0]["HType"].ToString();}if (htype=="1"){return iresult=1;}if (htype == "2"){return iresult =2;}}catch { }return iresult;} View Code?
使用類:
public class clsArrayList{public int p_Count = -1; //數(shù)據(jù)組數(shù)private string[] myArray1; //一維矩陣private string[,] myArray2; //二維矩陣/// <summary>/// 一維字符串分隔,初始化.例: clsArrayList myArray1List=new clsArrayList("1;2;3;4;5",';')/// </summary>/// <param name="strStringSource"></param>/// <remarks></remarks>public clsArrayList(string strStringSource, char charSepartor){try{myArray1 = strStringSource.Split(charSepartor);//截取 p_Count = myArray1.Length;}catch (Exception ex){clsLogHelper.m_CreateErrorLogTxt("clsArrayList(" + strStringSource + " , " + charSepartor + ")", "", ex.Message.ToString());}}/// <summary>/// 二維字符串分隔,初始化. 例: clsArrayList myArray1List=new clsArrayList("1,A;2,B;3,C;4,D;5,E" , ';' , ',')/// </summary>/// <param name="strStringSource"></param>/// <param name="strColumnSepartor"></param>/// <param name="strRowSepartor"></param>/// <remarks></remarks>public clsArrayList(string strStringSource, char charColumnSepartor, char charRowSepartor){try{string[] strColumn; //第一次截取 ";"string[] strRow; //第二次截取 "," strColumn = strStringSource.Split(charColumnSepartor);//第一次截取 p_Count = strColumn.Length;myArray2 = new string[p_Count, 2];for (int i = 0; i <= p_Count - 1; i++) //將數(shù)據(jù)保存 數(shù)組 myArray1 中 {strRow = strColumn[i].Split(charRowSepartor);//第二次截取myArray2[i, 0] = strRow[0];myArray2[i, 1] = strRow[1];}}catch (Exception ex){clsLogHelper.m_CreateErrorLogTxt("clsArrayList(" + strStringSource + " , " + charColumnSepartor + " , " + charRowSepartor + ")", "", ex.Message.ToString());}}/// <summary>/// 一維字符串,取值/// </summary>/// <param name="intIndex"></param>/// <returns></returns>public string m_GetItem(int intIndex){if (myArray1 == null){return "";}if (p_Count == -1){return "";}if (intIndex > p_Count - 1){return "";}else{return myArray1[intIndex];}}/// <summary>/// 二維字符串,取值/// </summary>/// <param name="intKeyIndex"></param>/// <param name="intValueIndex"></param>/// <returns></returns>/// <remarks></remarks>public string m_GetItem(int intKeyIndex, int intValueIndex){if (myArray2 == null){return "";}if (p_Count == -1){return "";}if (intKeyIndex > p_Count - 1 || intValueIndex > 1)//Value為列,二維 {return "";}else{return myArray2[intKeyIndex, intValueIndex];}}/// <summary>/// 二維字符串,通過Value 獲取Key ,例: m_GetKey("1")/// </summary>/// <param name="strValue"></param>/// <returns></returns>/// <remarks></remarks>public string m_GetKey(string strValue){try{if (myArray2 == null){return "";}if (p_Count == -1){return "";}for (int i = 0; i <= p_Count - 1; i++) //通過value查找key {if (myArray2[i, 1] == strValue){return myArray2[i, 0]; //返回key的值 }}return "";}catch (Exception ex){clsLogHelper.m_CreateErrorLogTxt("clsArrayList(" + strValue + ")", "", ex.Message.ToString());return "";}}/// <summary>/// 二維字符串,通過Key 獲取Value/// </summary>/// <param name="strKey"></param>/// <returns></returns>/// <remarks></remarks>public string m_GetValue(string strKey){try{if (myArray2 == null){return "";}if (p_Count == -1){return "";}for (int i = 0; i <= p_Count - 1; i++) //通過key查找value {if (myArray2[i, 0] == strKey){return myArray2[i, 1]; //返回value的值 }}return "";}catch (Exception ex){clsLogHelper.m_CreateErrorLogTxt("m_GetValue(" + strKey + ")", "", ex.Message.ToString());return "";}} View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/Warmsunshine/p/4056364.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的是否是工作日和节假日判定的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里大数据比赛总结
- 下一篇: ios开发 json数据文件的存取