是否是工作日和节假日判定
根据节假日表分析当前日期是否属于节假日配置表的时间以及判定当前日期是否属于双休日
首先建一张节假日表PricingHoliday ID 节假日时间 HDate 是否工作日 HType 2表示不上班 非工作日, 1表示正常上班 工作日
判定代码:
private string _strWorkingDayAM = "00:00";//工作时间private string _strWorkingDayPM = "23:59";private string _strRestDay = "6,7";//周几休息日 周六周日为 6,7private TimeSpan dspWorkingDayAM;//工作时间private TimeSpan dspWorkingDayPM;//下午工作时间 clsArrayList myArrayList;/// <summary>/// 是否周休日/// </summary>/// <returns></returns>private bool m_IsWorkingDay(){string strWeekNow = this.m_GetWeekNow();//当前周几//判断是否休息日for (int i = 0; i < myArrayList.p_Count; i++){if (strWeekNow == myArrayList.m_GetItem(i)){return false;}}//判断当前时间是否在工作时间段内 TimeSpan dspNow = DateTime.Now.TimeOfDay;//string date = DateTime.Now.ToShortDateString();if (dspNow > dspWorkingDayAM && dspNow < dspWorkingDayPM){return true;//是在工作时间内 }return false;//不是在工作时间内 }/// <summary>/// 初始化默认值/// </summary>private void m_InitWorkingDay(){dspWorkingDayAM = DateTime.Parse(_strWorkingDayAM).TimeOfDay;dspWorkingDayPM = DateTime.Parse(_strWorkingDayPM).TimeOfDay;myArrayList = new clsArrayList(_strRestDay, ',');}/// <summary>/// 获取当前周几/// </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 = "今天是工作日,非节假日";}else if (resultYesOrNo == 1){this.labelX1.Text = "今天是工作日,非节假日";}else if ((bol.Equals(true))){this.labelX1.Text = "今天是工作日";}else{this.labelX1.Text = "今天是节假日非工作日";}}/// <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++){//从数据库得到字段的值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; //数据组数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++) //将数据保存 数组 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
转载于:https://www.cnblogs.com/Warmsunshine/p/4056364.html
是否是工作日和节假日判定相关推荐
- Java时间日期类处理(LocalDateTime、LocalDate相关操作、获取周几、工作日休息日节假日判定)
1.LocalDateTime相关操作:(时间推移.计算两个LocalDateTime之间的时间间隔.转LocalDate),代码如下: // 获取LocalDateTime对象String date ...
- mysql节假日判定_是否是工作日和节假日判定
public classclsArrayList {public int p_Count = -1; //数据组数 private string[] myArray1; //一维矩阵 private ...
- python 节假日_python判断工作日,节假日
python判断工作日,节假日 发布时间:2020-09-07 09:37:20编辑:admin阅读(1017) 一.概述 最近在做数据分析,需要判断一个日期是否为工作日,节假日. 找到一个现成的插件 ...
- php 计算时间段内的工作日 与节假日
计算方法是取开始时间后的第一个星期一,如果结束时间大于等这一天则用第一个星期一至结束时间的时间的间隔取整周数与余数计算工作日与周末,再加上第一个周一前一周的工作日与节假日. /** 计算时间段内的工作 ...
- Pandas 日期处理:生成及去除工作日与节假日
Pandas 日期处理:生成工作日与节假日
- iPhone自动设置工作日和节假日闹钟
iPhone自动设置工作日和节假日闹钟 原理 步骤 编辑自动化的详细步骤 版本 修改说明 日期 1.0 创建 2022-05-09 2.0 修改type值获取bug 2022-05-14 3.0 制作 ...
- java方法 判断今天是工作日/周末/节假日
1.工具类里静态方法 public static String request( String httpArg) {String httpUrl="http://tool.bitefu.ne ...
- JAVA_获取正常上班工作日-除去节假日_双休日_加上加班
/**实现思路*1. 判断指定日期是否掉是双休日*2. 在通过获取指定日期的 月和日 判断是否是节假*3. 判断是否有节假日 双休加班情况*4. 如果上面的你已经了解,那么得到工作日就简单了,不写了, ...
- JAVA 获取工作日、节假日工具 Lunar
开源项目地址 https://github.com/6tail/lunar-java 使用很简单,但是好像无法直接通过maven拉包,也可能我们公司网络问题. 参考文档,在github上项目下拉页面底 ...
最新文章
- 3D目标检测论文阅读多角度解析
- 1097 Deduplication on a Linked List
- .NET : 针对Oracle的LOB数据访问
- [LeetCode]题解(python):013-Roman to Integer
- ubuntu下安装gedit插件
- html5时间画布走动,javascript+HTML5 canvas绘制时钟功能示例
- c# 傅里叶变换 频域_傅里叶变换在MATLAB中的应用(频域滤波)
- poj1753_flipgame_枚举
- 需求管理与分析——需求池
- Machine Learning - XVIII. Application Example Photo OCR应用实例-照片OCR(Week10)
- Spring.NET实用技巧1——基于Prevalence下的NHibernate二级缓存使用技巧
- atitit 信息存储理论专题 目录 1.1. ACID	1 1.2. 一致性相关的理论 CAP(CA、CP、AP 的相关算法)	1 1.3. BASE 理论。	1 1.4. FLP不可能原理	1
- 拆装智伴机器人_智伴机器人软件下载-智伴下载 v4.2.8-pc6智能硬件网
- 【Java】教学视频资源
- cmd中如何运行python文件_在cmd中运行.py文件: python的操作步骤
- python 微信授权 昵称乱码解决
- mysql 触发器 模板_MySQL 触发器例子(两张表同步增加和删除)
- php 竞拍系统,基于PHP+Mysql的校园商品拍卖系统
- MySQL 设计与开发规范
- js获取今日,昨日,本周,上周,本月,上月,的0点及24点的时间及时间戳,
热门文章
- 矩阵迹的性质_矩阵(含逆)的迹、行列式关于矩阵自身的导数计算与Maple验证...
- python中main的作用_浅析python 中__name__ = '__main__' 的作用
- html5 的menu的属性,HTML5 menu 标签
- hashmap为什么用红黑树_全网最全,面试常问的HashMap知识点
- Oracle11g 修改数据库编码(UTF-8修改为GBK)
- 自动化电子测试软件,自主开发的MIL测试自动化测试工具
- python算法详解张玲玲电子版_算法之路该如何学习?
- python 切换环境_python 使用 pyenv 多环境切换
- 地理必修一三大类岩石_高一地理必修一知识点总结归纳
- Ajax发送formdata数据,SpringMVC后台处理