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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python QQ刷屏代码[通俗易懂]

    python QQ刷屏代码[通俗易懂]这个代码只能支持一个窗口进行刷屏,name变量是窗口名,foriinrange(1):括号中的数字是发送数量,由于是初学python如有不足请大佬们指教fromunicodedataimportnameimportwin32guiimportwin32conimportwin32clipboardaswclassqqshuapin:defsend(self,msg):name=”我的Android手机”w.OpenClipboard(

    2022年4月27日
    288
  • pycharm怎么配置python环境anaconda_ug编程电脑配置要求

    pycharm怎么配置python环境anaconda_ug编程电脑配置要求1.介绍Python:一种解释型、面向对象、动态数据类型的高级程序设计语言。PyCharm:一款好用的集成开发环境。Conda:Python环境管理器,方便我们管理和切换编程环境。2.下载2.1Conda下载Miniconda下载链接Anaconda下载链接Miniconda是Anaconda的压缩版,Miniconda只包含conda的核心内容,Anaconda中包含了Spyder集成开发环境等扩充内容。Miniconda的功能足矣。根据计算机的实际情况选择下载安装包,上图中Py

    2022年8月28日
    5
  • apache knox安装_系统服务组件

    apache knox安装_系统服务组件参考链接:https://blog.csdn.net/qq_37865420/article/details/105787160

    2025年7月8日
    4
  • VBoxManage

    VBoxManageVBoxManage[-v|-version]        显示virtualbox的版本号VBoxManage-nologo              隐藏logoVBoxManage-convertSettings     允许自动转换设置文件VBoxManage-convertSettingsBackup 允许自动转换设置文件,并在转换前作备份VBoxMan

    2022年4月27日
    60
  • 万能游戏框架

    万能游戏框架万能游戏框架 nbsp nbsp nbsp nbsp 论学习方法 nbsp 游戏框架演变过程 nbsp 游戏开发难点 nbsp nbsp nbsp 代码组织架构 资源 网络 3D 数学 热更新 nbsp 拖拽式和查找式 nbsp 单例式 nbsp nbsp nbsp 常用设计模式讲解 nbsp nbsp nbsp nbsp 1 工厂模式 nbsp nbsp nbsp nbsp 2 策略模式 nbsp nbsp nbsp nbsp 3 观察者模式 nbsp nbsp nbsp nbsp 4 单例模式 nbsp nbsp nbsp nbsp 5 代理模式 nbsp nbsp nbsp nbsp 6 多例模式

    2025年12月8日
    7
  • 使用SpringBoot上传文件并存储至数据库

    使用SpringBoot上传文件并存储至数据库springboot2.2.1.RELEASE <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><…

    2022年5月20日
    40

发表回复

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

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