mysql利用java创建对应年工作日节假日与调休日

先创建表
CREATE TABLE config_calendar (
rep_date date NOT NULL COMMENT ‘日期’,
rep_year int(8) NOT NULL COMMENT ‘年号’,
rep_month int(8) NOT NULL COMMENT ‘月’,
rep_day int(8) NOT NULL COMMENT ‘天’,
rep_week int(8) NOT NULL COMMENT ‘周’,
rep_status int(8) DEFAULT ‘0’ COMMENT ‘0:工作日;1:周末休息日;2:法定休息日;3:调休工作日’,
enable_flag int(8) NOT NULL COMMENT ‘逻辑删除,初始化1’,
PRIMARY KEY (repDate)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=‘全年日期表’;
存储过程
BEGIN
DECLARE count INT DEFAULT 0;
DECLARE startDay DATE ;
DECLARE yearNum INT DEFAULT 365;
DECLARE workOrWeek INT DEFAULT 1;
DECLARE yearBool INT DEFAULT 0;
DECLARE db_status_ INT DEFAULT 0;
#判断是否数据存在
SELECT count(*) INTO yearBool FROM config_calendar WHERE rep_year=yaerParam;
IF yearBool=0 THEN
SET startDay = DATE(concat(yaerParam,’-01-01’));
#判断平闰年
IF yaerParam % 4 = 0 AND yaerParam % 100 <> 0 OR yaerParam % 400 = 0 THEN
SET yearNum = 366;
ELSE
SET yearNum = 365;
END IF;

WHILE count < yearNum DO
SET workOrWeek = DAYOFWEEK(DATE_SUB(startDay,INTERVAL 1 day));
IF (workOrWeek)>5 THEN
SET db_status_=1;
ELSE
SET db_status_=0;
END IF;
INSERT INTO config_calendar(rep_date,rep_year,rep_month,rep_day,rep_status,rep_week,enable_flag) VALUES(startDay,YEAR(startDay),MONTH(startDay),DAY(startDay),db_status_,WEEKDAY(startDay)+1,1);
SET count=count+1;
SET startDay=DATE_ADD(DATE(startDay),INTERVAL 1 DAY);
END WHILE;
END IF;
END
执行存储过程
call getAllYearDateFunc(2020)

只是生产了一年内所有日期与工作日
int dayStart=1;
int dayNum=366;
Date date = sdf.parse(“2020-01-01”);
String url1 = “http://timor.tech/api/holiday/info/”+sdf.format(date);
String result1 = HttpClientUtil.doGet(url1);
WorkDateEntity parse1 = JsonUtils.parse(result1, WorkDateEntity.class);
webUserService.dayWork(sdf.format(date),parse1.getType().getType());
while(dayStart<=dayNum){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, +1);
date = calendar.getTime();
String url = “http://timor.tech/api/holiday/info/”+sdf.format(date);
String result = HttpClientUtil.doGet(url);
WorkDateEntity parse = JsonUtils.parse(result, WorkDateEntity.class);
//遍历执行修改语句即可
dayStart++;
}
实体类与http工具和jsonutil 查看另一篇博客
https://editor.csdn.net/md/?articleId=109329462

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值