2019年日历假期添加

2019年日历假期添加

考勤统计中,一般都需要考虑到节假日信息和调休的日期,每年12月份国家会颁布新一年的节假日信息,我们可根据节假日信息,维护成相关的日期表,用于日期维护。本文介绍下相关实现方式。

日期表的创建如下:

    CREATE TABLE [dbo].[HR_WorkDayList](
        [WorkDate] [varchar](10) NOT NULL,
        [DateType] [nvarchar](10) NULL,
        [IsWorkDay] [bit] NULL,
        [Remark] [nvarchar](20) NULL,
     CONSTRAINT [PK_HR_WorkDayList] PRIMARY KEY CLUSTERED
    (
        [WorkDate] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]

可根据系统表插入每年的日期列表,SQL脚本如下(可以一次性生成几年内的日期列表,在系统设计中,我这里生成了2018年-2028年的日期数据):

    INSERT INTO [dbo].[HR_WorkDayList](WorkDate,DateType,IsWorkDay,Remark) select WorkDate,DateType,IsWorkDay,Remark from
     
    (SELECT convert(char(10), DATEADD(dd, number, ‘2023-08-11’),120) AS WorkDate,
    datename(weekday,convert(char(10), DATEADD(dd, number, 2023-08-11),120)) as DateType,
    case when datename(weekday,convert(char(10), DATEADD(dd, number, 2023-08-11),120))<>’星期六’ and datename(weekday,convert(char(10), DATEADD(dd, number, 2023-08-11),120))<>’星期日’ then 1 else 0 end as IsWorkDay,
    ” as Remark
    FROM   master.dbo.spt_values  as spt
    WHERE   type = ‘p’ AND number <= DATEDIFF(DAY, ‘2023-08-11’, ‘2028-12-31’)) as SourceTable

根据每年国家发布的节假日信息,更新相关日期。采用Excel表格,组合成SQL脚本,然后更新表数据 。下表是我整理的2019年的节假日信息。
日期           备注     是否上班     SQL脚本更新
2018-12-29           上班     1     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =1 ,[Remark] =’上班’WHERE WorkDate=’2018-12-29′
2018-12-30           元旦     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’元旦’WHERE WorkDate=’2018-12-30′
2018-12-31           元旦     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’元旦’WHERE WorkDate=’2018-12-31′
2019-01-01           元旦     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’元旦’WHERE WorkDate=’2019-01-01′
2019-02-03           上班     1     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =1 ,[Remark] =’上班’WHERE WorkDate=’2019-02-03′
2019-02-03           上班     1     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =1 ,[Remark] =’上班’WHERE WorkDate=’2019-02-03′
2019-02-04           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-04′
2019-02-05           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-05′
2019-02-06           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-06′
2019-02-07           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-07′
2019-02-08           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-08′
2019-02-09           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-09′
2019-02-10           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-10′
2019-04-05           清明节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’清明节’WHERE WorkDate=’2019-04-05′
2019-04-06           清明节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’清明节’WHERE WorkDate=’2019-04-06′
2019-04-07           清明节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’清明节’WHERE WorkDate=’2019-04-07′
2019-05-01           劳动节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’劳动节’WHERE WorkDate=’2019-05-01′
2019-06-07           端午节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’端午节’WHERE WorkDate=’2019-06-07′
2019-06-08           端午节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’端午节’WHERE WorkDate=’2019-06-08′
2019-06-09           端午节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’端午节’WHERE WorkDate=’2019-06-09′
2019-09-13           中秋节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’中秋节’WHERE WorkDate=’2019-09-13′
2019-09-14           中秋节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’中秋节’WHERE WorkDate=’2019-09-14′
2019-09-15           中秋节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’中秋节’WHERE WorkDate=’2019-09-15′
2019-09-29           上班     1     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =1 ,[Remark] =’上班’WHERE WorkDate=’2019-09-29′
2019-10-12           上班     1     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =1 ,[Remark] =’上班’WHERE WorkDate=’2019-10-12′
2019-10-01           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-01′
2019-10-02           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-02′
2019-10-03           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-03′
2019-10-04           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-04′
2019-10-05           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-05′
2019-10-06           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-06′
2019-10-07           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-07′

在此基础上,我们可以做月工作日天数统计,年工作日天数统计,以及年休息日统计,还有其他统计等。同时我们可以根据业务需要,用任何一门语言实现相关的业务需求。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119666.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • bzoj1396_bzoj3771

    bzoj1396_bzoj3771传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1396题目大意:题解:后缀自动机,只出现一次,那么就是right值为1,那么对于一段1—-L—-R来说,(L—-R)为一个最短识别子串对于(1—-L-1)则可以用R-i+1来更新,对于(L—R)则可以用R-L+1来更新,那么两个线段树来维护即可。代码:

    2022年8月12日
    3
  • 流水线设计思想_全自动流水线

    流水线设计思想_全自动流水线在硬件电路设计中,流水线设计思想是一种很重要的设计思想,这种思想是一种用面积换速度的思想,用更多的资源来实现高速。(面积就是需要的硬件数量,如触发器的数量)顾名思义,流水线思想,就像工厂中的流水线一样。假设是一个手机组装的流水线,一个三个步骤:A,将电池装入手机起来;B,将屏幕组装起来;C,将外壳组装起来。在上面的三个步骤中,流水线的实现就是:A步骤实现后,将手机发往B,然后A继续组装电池,而不会等待C完成再组装;B和C也是一样。流水线思想就是自己完成自己的功能,不会等待。这在硬件电路中就是一种并行的

    2022年8月14日
    1
  • pycharm模板设置时间_pycharm编辑配置

    pycharm模板设置时间_pycharm编辑配置pycharm模板设置模板的作用过程模板的作用可以在新建文件时把预先设定好的内容添加到文件的开始位置。过程打开pycharm选择菜单中的file下的Settimgs3.选中FileandCodeTemplates4.我们这里设置PythonScript…

    2022年8月26日
    2
  • 各种机械键盘轴的差别,究竟什么轴好

    各种机械键盘轴的差别,究竟什么轴好

    2021年8月30日
    261
  • 不能复制文字的网页文字复制怎么办_实现网页布局的方法

    不能复制文字的网页文字复制怎么办_实现网页布局的方法想必很多小伙伴遇到过这样的情况,在网上查找很多的资料,但是因为网页本身的限制不允许复制或者需要付费:遇到这种情况应该怎么办呢?接下来,就和大家分享下如何免费复制网页上不能复制的文字!解决方法一:转到打印界面进行复制:在需要复制文字的界面鼠标右键选择打印或者使用快捷键Ctrl+P,打开打印界面,在打印界面就可以进行复制操作啦!解决方法二:源代码界面复制在需要复制文字的界面鼠标右键选择“查看网页源代码”或者使用快捷键Ctrl+U,打开源代码界面,在源代码界面找到自己要复制的内容复

    2022年10月13日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号