PHP 根据国家法定节假日API和周末,计算出上班日,休息日,几人轮流值班,循环上班
PHP 根据国家法定节假日API和周末,计算出上班日,休息日,几人轮流值班,循环上班

<?php
/*****JSON转数组函数*****/
function json_to_array($data){
$data = json_decode($data,JSON_UNESCAPED_UNICODE);
return $data;
}
/*****数组转JSON函数*****/
function array_to_json($data, $meihua = false){
if($meihua == false){
$data = json_encode($data, JSON_UNESCAPED_UNICODE);
}else{
$data = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
}
return $data;
}
/*****数组 转 对象*****/
function array_to_object($arr) {
if (gettype($arr) != 'array') {
return;
}
foreach ($arr as $k => $v) {
if (gettype($v) == 'array' || getType($v) == 'object') {
$arr[$k] = (object)array_to_object($v);
}
}
return (object)$arr;
}
/*****对象 转 数组*****/
function object_to_array($obj) {
$obj = (array)$obj;
foreach ($obj as $k => $v) {
if (gettype($v) == 'resource') {
return;
}
if (gettype($v) == 'object' || gettype($v) == 'array') {
$obj[$k] = (array)object_to_array($v);
}
}
return $obj;
}
/*****封装函数,全年周末,包含轮休上班日*****/
function getWeekend($year) {
$startDate = $year.'-01-01';
$endDate = $year.'-12-31';
$start = new DateTime($startDate);
$end = new DateTime($endDate);
$end = $end->modify('+1 day');
$interval = new DateInterval('P1D');
$period = new DatePeriod($start, $interval, $end);
$noworkingDay =array();
foreach ($period as $dt) {
if ($dt->format('N') == 6) {
$noworkingDay[date('m-d',strtotime(object_to_array($dt)['date']))] = '周六';
}
if ($dt->format('N') == 7) {
$noworkingDay[date('m-d',strtotime(object_to_array($dt)['date']))] = '周日';
}
}
return $noworkingDay;
}
function requestData($requestUrl, $method = 'GET', $header = array(), $requestparamJson){
if (empty($requestUrl) || empty($requestparamJson)) {
return false;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$requestUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if($method == 'POST') {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestparamJson);
}
if ($method == 'PUT' || strtoupper($method) == 'DELETE'){
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestparamJson);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
}
curl_setopt($ch,CURLINFO_HEADER_OUT,true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
if(isset($_REQUEST['y'])){
$year=$_REQUEST ['y'];
}else{
$year=date("Y");
}
if(isset($_REQUEST['m'])){
$m=$_REQUEST ['m'];
}else{
$m=date("m");
}
function configData($anshu, $year){
$zhibanrenyuan = array(
'张三(部门领导)',
'李四(部门领导)',
'王五(部门领导)',
);
$nozhibanrenyuan = array(
'土八路',
'王二麻子',
'疯子',
);
$tempallJiaban=array( //部门全员临时加班
'2024'=>array(
//'02-11'=>'临时加班',
)
);
if(empty($tempallJiaban[$year])){
$tempallJiaban[$year]=array();
}
$gaopei = array(
'机修一',
'机修二',
'机修三',
);
$countGaopei = count($gaopei);
$gaopeiJiaban=array( //临时加班
'2024'=>array(
'01-05'=>'机修一',
'01-08'=>'机修一',
),
);
if(empty($gaopeiJiaban[$year])){
$gaopeiJiaban[$year]=array();
}
$gaopeiXiu=array( //休息
'2024'=>array(
'01-05'=>'机修二',
'01-08'=>'机修二',
),
);
if(empty($gaopeiXiu[$year])){
$gaopeiXiu[$year]=array();
}
$nuantongYeban = array(
'YYYY',
'XXXX',
);
$temp35Wangsuming=array(
'2022'=>array(
//'09-07'=>'临时加班',
),
'2023'=>array(
'09-21'=>'3.5小时值班',
'09-29'=>'3.5小时值班',
'10-05'=>'3.5小时值班',
'10-11'=>'3.5小时值班',
'10-25'=>'3.5小时值班',
),
'2024'=>array(
//'09-07'=>'临时加班',
),
);
if(empty($temp35Wangsuming[$year])){
$temp35Wangsuming[$year]=array();
}
$temp35Chenqiankui=array(
'2022'=>array(
//'09-07'=>'临时加班',
),
'2023'=>array(
'09-07'=>'3.5小时值班',
'09-15'=>'3.5小时值班',
'10-07'=>'3.5小时值班',
'10-17'=>'3.5小时值班',
),
'2024'=>array(
),
);
if(empty($temp35Chenqiankui[$year])){
$temp35Chenqiankui[$year]=array();
}
$zhongyaoData = array(
'2023'=>array(
'09-19'=>'限行时间',
'09-21'=>'限行时间',
'09-23'=>'限行时间',
'09-25'=>'限行时间',
'09-27'=>'限行时间',
'09-29'=>'限行时间',
'10-01'=>'限行时间',
'10-03'=>'限行时间',
'10-05'=>'限行时间',
'10-07'=>'限行时间',
'12-31'=>'结算日',
),
'2024'=>array(
'02-09'=>'春节长假',
'02-10'=>'春节长假',
'02-11'=>'春节长假',
'02-12'=>'春节长假',
'02-13'=>'春节长假',
'02-14'=>'春节长假',
'02-15'=>'春节长假',
'02-16'=>'春节长假',
'02-17'=>'春节长假',
),
);
if(empty($zhongyaoData[$year])){
$zhongyaoData[$year]=array();
}
if($anshu){
$anshu= $$anshu;
return $anshu;
}
}
$zhibanrenyuan = configData('zhibanrenyuan',$year);
$nozhibanrenyuan = configData('nozhibanrenyuan',$year);
$tempallJiaban = configData('tempallJiaban',$year);
$gaopei = configData('gaopei',$year);
$countGaopei = count($gaopei);
$gaopeiJiaban = configData('gaopeiJiaban',$year);
$gaopeiXiu = configData('gaopeiXiu',$year);
$nuantongYeban = configData('nuantongYeban',$year);
$temp35Wangsuming = configData('temp35Wangsuming',$year);
$temp35Chenqiankui = configData('temp35Chenqiankui',$year);
$zhongyaoData = configData('zhongyaoData',$year);
////////////////////////////////////////////////////////////////////////////
$lastNian = date("Y",strtotime("-1 years",strtotime($year.'-'.$m)));
$nextNian = date("Y",strtotime("+1 years",strtotime($year.'-'.$m)));
$lastYue = date("m",strtotime("-1 months",strtotime($year.'-'.$m)));
$returnYear = date("Y",strtotime($year.'-'.$m));
$nextYue = date("m",strtotime("+1 months",strtotime($year.'-'.$m)));
if($lastYue == 12){
$shangNian = $returnYear - 1;
}else{
$shangNian = $returnYear;
}
if($nextYue == 01){
$xiaNian = $returnYear + 1;
}else{
$xiaNian = $returnYear;
}
$nianYue = date("Y-m",strtotime($year.'-'.$m));
$dangTian = date("Ymd",time());
$weekArray = array("日","一","二","三","四","五","六");
$meiTians = strtotime(date($nianYue)); //当月1日时间戳
$tianShu = date("t",$meiTians); //当月天数
////////////////////////////获取全年周末开始////////////////////////////////
$isZhoumo = getWeekend($year);
$isZhoumoaArray = array($year => $isZhoumo);
foreach($isZhoumoaArray[$year] as $key => $val){
$zhoumoArray[$key]['name'] = $val;
$zhoumoArray[$key]['target'] = '周末';
$zhoumoArray[$key]['wage'] = 2;
$zhoumoArray[$key]['type'] = 1;
$zhoumoArray[$key]['date'] = $year.'-'.$key;
}
///////////////////////////请求API///////////////////////////////////////
$header =array();
$header[] = "Accept:application/json";
$header[] = "charset=UTF-8";
$header[] = "Content-Type: application/json";
$header[] = "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36";
$requestUrl = 'http://timor.tech/api/holiday/year/'.$year;
$requestparamsJson = 'A';
$jiejiariapiData = requestData($requestUrl, $method = 'GET', $header, $requestparamsJson);
if(empty($jiejiariapiData)){
$jiejiariapiData[$year]=array();
}
///////////////////////////请求API///////////////////////////////////////
foreach(json_to_array($jiejiariapiData)['holiday'] as $key => $val ){
if($val['holiday'] == true){
$fadingxiuxiriArray[$key] = $val;
}
if($val['holiday'] == false){
$fadinggongzuoriArray[$key] = $val;
}
}
if(empty($fadinggongzuoriArray)){
$fadinggongzuoriArray[$year]=array();
}
if(empty($fadingxiuxiriArray)){
$fadingxiuxiriArray[$year]=array();
}
$zhoumopaichugongzri = array_diff_key($zhoumoArray,$fadinggongzuoriArray);
$xiuxiriandzhoumo = $zhoumopaichugongzri + $fadingxiuxiriArray;
ksort($xiuxiriandzhoumo);
$xiuxiriandzhoumoJson[$year] = $xiuxiriandzhoumo;
////////////////////////////获取全年周末结束///////////////////////////
$zhoumoFangjia = $fadingxiuxiriArray + $isZhoumoaArray[$year];
ksort($zhoumoFangjia);
///////////////////////////删除轮休数组///////////////////////////
$returnJson = array();
$returnJson[$year]['isSatsun'] = $isZhoumo;
$returnJson[$year]['isHoliday'] = $fadingxiuxiriArray;
$returnJson[$year]['isAdjusted'] = $fadinggongzuoriArray;
$returnJson[$year]['islegalHoliday'] = array_diff_key($zhoumoFangjia,$fadinggongzuoriArray);
///////////////////////////删除轮休数组///////////////////////////
if(isset($_REQUEST['json'])){
@header("content-type:text/json;charset=UTF-8");
echo array_to_json($xiuxiriandzhoumoJson);
exit();
}else{
@header("content-type:text/html;charset=UTF-8");
foreach($returnJson[$year]['islegalHoliday'] as $key => $secret ){
$zhibanRiArray[] = '周末+法定节假日-轮休上班日'; //增加一个空数组,达到偏移
$zhibanRiArray[] = $key;
}
for($i = 0; $i < count($zhibanrenyuan); $i++){
for($p = 0; $p < count($zhibanRiArray); $p++){
if(($p % count($zhibanrenyuan))==$i){
$zhibanArray[$year][$zhibanrenyuan[$i]][$zhibanRiArray[$p]]= '节日+周末-轮休';
}
}
}
////////////////////////////////////////////////////
$oo="'parent',this,0";
//echo '<body style="font-size:20;margin: auto;text-align:center">';
echo '<p style="font-size:30px;text-align:center">XXXXXX公司<span style="text-decoration:underline;"> '.$year.' </span>年<span style="text-decoration:underline;"> '.$m.' </span>月排班表</p>';
echo '<p style="font-size:16px; margin-left: 75%;">打印时间:'.date("Y-m-d", time()).' <a href="?y='.$year.'&json" style="text-decoration:none;">json版本</a></p>';
//***************表格开始*****************
echo '<table border="1" style="margin: auto;table-layout:fixed;font-size: 18px;" width="1600px" cellspacing="0">';
echo '<tr style="height: 40px;"><td align="center" width="150px">';
echo '<form style="margin:0px;" action="" method="get">';
echo '<a href="?y='.$lastNian.'&m='.$m.'" style="text-decoration:none;">< </a><select name="jumpMenu" id="jumpMenu" onchange="MM_jumpMenu('.$oo.')" style="height: 30px;width:80px;font-size: 18px;">';
echo '<option value="?y='.date("Y").'&m='.date("m").'"disabled>选择年</option>';
for ($x=2017; $x<2031; $x++) {
if($year == $x){
echo '<option value="?y='.$x.'&m='.$m.'"selected>'.$x.'年</option>';
}else{
echo '<option value="?y='.$x.'&m='.$m.'">'.$x.'年</option>';
}
}
echo '</select><a href="?y='.$nextNian.'&m='.$m.'" style="text-decoration:none;"> > </a></form>';
echo '</td>';
echo '<td align="center" width="150px">';
echo '<form style="margin:0px;" action="" method="get">';
echo '<a href="?y='.$shangNian.'&m='.$lastYue.'" style="text-decoration:none;"> < </a><select name="jumpMenu" id="jumpMenu" onchange="MM_jumpMenu('.$oo.')" style="height: 30px;width:60px; font-size: 18px;">';
echo '<option value="?y='.date("Y").'&m='.date("m").'"disabled>选择月</option>';
for ($t=1; $t<13; $t++) {
$t = ($t+1 > 10)?$t:'0'.$t;
if($t == $m){
echo '<option value="?y='.$year.'&m='.$t.'"selected>'.$t.'月</option>';
}else{
echo '<option value="?y='.$year.'&m='.$t.'">'.$t.'月</option>';
}
}
echo '</select><a href="?y='.$xiaNian.'&m='.$nextYue.'" style="text-decoration:none;"> > </a>';
echo '</form>';
echo '</td>';
for ($x=0; $x<$tianShu; $x++) {
$ri=date("j",strtotime("+$x day",strtotime($nianYue)));
$ti = ($ri+1 > 10)?$ri:'0'.$ri;
if ($dangTian==$year.$m.$ti){
echo '<td align="center" style="background-color: red;color: #FFF;font-size: 17px;/* font-style: italic; */ font-weight: bold;">'.$ri.'</td>';
}elseif(key_exists($m.'-'.$ti, $zhongyaoData[$year])){
echo '<td align="center" title="'.$zhongyaoData[$year][$m.'-'.$ti].'" style="background-color: yellow; color: blue;font-size: 17px;/* font-style: italic; */ font-weight: bold;">'.$ri.'</td>';
}else{
echo '<td align="center" >'.$ri.'</td>';
}
}
echo '<td align="center">出勤</td><td align="center">公休</td><td align="center">加班</td><td align="center">病假</td><td align="center">事假</td><td align="center">旷工</td></tr><tr style="height: 40px;"><td align="center">姓名</td><td align="center">部门</td>';
//***************结束*************************
//***************开始*************************
for ($x=0; $x<$tianShu; $x++) {
$ri=date("Y-n-j",strtotime("+$x day",strtotime($nianYue)));
$xingqi = $weekArray[date("w",strtotime(date($ri)))];
echo '<td align="center">'.$xingqi.'</td>';
}
echo '<td></td><td></td><td></td><td></td><td></td><td></td></tr>';
//***************结束*************************
//***************值班开始*****************
foreach($zhibanrenyuan as $k => $val ){
echo '<tr style="height: 40px;"><td align="center" style="background-color: #9e9e9e;">'.$val.'</td><td align="center">周末节假日值班</td>';
for ($x=0; $x<$tianShu; $x++){
$haoShu=date("d",strtotime("+$x day",strtotime($nianYue)));
$a=date("w",strtotime("+$x day",strtotime($nianYue)));
if($a =="0" || $a=="6"){
if (key_exists($m.'-'.$haoShu, $fadinggongzuoriArray)) {
echo '<td align="center" style="background-color:red;color: #FFF;">班</td>';
}elseif(key_exists($m.'-'.$haoShu, $zhibanArray[$year][$val])) {
echo '<td align="center" style="background-color:Blue;color: #FFF;">Z</td>';
}elseif(key_exists($m.'-'.$haoShu, $tempallJiaban[$year])){
echo '<td align="center" style="background-color:red;color: #FFF;">J</td>';
}else{
echo '<td align="center"></td>'; //获取值班数据
}
}else{
if(key_exists($m.'-'.$haoShu, $fadingxiuxiriArray)){ //4 10 23
if (key_exists($m.'-'.$haoShu, $zhibanArray[$year][$val])){ //且不存在Z
echo '<td align="center" style="background-color:Blue;color: #FFF;">Z</td>';
}else{
echo '<td align="center" style="background-color:green;color: #FFF;">休</td>';
}
}else{
echo '<td align="center">P</td>';
}
}
}
echo '<td></td><td></td><td></td><td></td><td></td><td></td></tr>';
}
//***************值班维修结束*****************
//***************不值班维修开始2024OK*****************
foreach($nozhibanrenyuan as $k => $var){
echo '<tr style="height: 40px;"><td align="center" style="background-color: #49a2e9;">'.$var.'</td><td align="center">法定上班时日上班</td>';
for ($x=0; $x<$tianShu; $x++){
$haoShu=date("d",strtotime("+$x day",strtotime($nianYue)));
$a=date("w",strtotime("+$x day",strtotime($nianYue)));
if($a =="0" || $a=="6"){
if (key_exists($m.'-'.$haoShu, $fadinggongzuoriArray)) {
echo '<td align="center" style="background-color:red;color: #FFF;">班</td>';
}elseif(key_exists($m.'-'.$haoShu, $tempallJiaban[$year])){
echo '<td align="center" style="background-color:red;color: #FFF;">J</td>';
}else{
echo '<td align="center"></td>'; //获取值班数据
}
}else{
if (key_exists($m.'-'.$haoShu, $fadingxiuxiriArray)) {
echo '<td align="center" style="background-color:green;color: #FFF;">休</td>';
}else{
echo '<td align="center">P</td>';
}
}
}
echo '<td></td><td></td><td></td><td></td><td></td><td></td></tr>';
}
//***************不值班结束2024OK*****************
//***************机修开始2024OK***********************
$i=0;
foreach($gaopei as $k => $var){
$name = reset($gaopei);
array_shift($gaopei);
echo '<tr style="height: 40px;"><td align="center" style="background-color: #9da174;">'.$name.'</td><td align="center">全年循环值班</td>';
for ($x=0; $x<$tianShu; $x++){
$ri=date("d",strtotime("+$x day",strtotime($nianYue)));
$Date_1 = date($nianYue.'-'.$x);
$Date_2 = "2001-01-03";
$d1 = strtotime($Date_1);
$d2 = strtotime($Date_2);
$Days = round(($d1-$d2)/3600/24);
if(($Days % $countGaopei)==$i){
if(key_exists($m.'-'.$ri, $gaopeiXiu[$year])){
echo '<td align="center" style="background-color: green;color: #FFF;">休</td>';
}else{
echo '<td align="center">3P</td>';
}
}elseif(key_exists($m.'-'.$ri, $gaopeiJiaban[$year])){
if($gaopeiJiaban[$year][$m.'-'.$ri] == $name){
echo '<td align="center" style="background-color: red;color: #FFF;">J</td>';
}else{
echo '<td align="center"></td>';
}
}else{
echo '<td align="center"></td>';
}
}
echo '<td></td><td></td><td></td><td></td><td></td><td></td></tr>';
$i++;
}
//***************暖通夜班结束2024OK*****************
echo '</table>';
echo '<p style="font-size:12;text-align:center">备注: 行政班( P ) 08:30-17:30;机修值班( 3P ) 08:30-次日08:30;非工作日值班( Z ) 08:30-17:30;计划外加班( J )(审批单) 时间待定</p>';
echo '<li>PHP 利用节假日API,全自动排班表</li>';
echo '<li>根据日历,计算周一到周五工作日;周末为非工作日;</li>';
echo '<li>查询国家法定节假日API,获得轮休日, 上班日;</li>';
echo '<li>临时加班,请假,保存为JSON数据;</li>';
echo '<li>获取到的数据,经过计算出按不同部门值班,休息数据;</li>';
echo '<li>按不同的部门循环;</li>';
echo '<li>部门领导组,上班日正常上班,休息按几人轮流值班;</li>';
echo '<li>一般人员,工作日上班,休息日休息;</li>';
echo '<li>机修,按几人轮流值班,不分节假日以及周末;</li>';
}
?>
<script type="text/javascript">
function MM_jumpMenu(targ,selObj,restore){
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
</script>
2023年全年JSON:
{
"2023": {
"01-01": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-01-01"
},
"01-02": {
"holiday": true,
"name": "元旦",
"wage": 2,
"date": "2023-01-02"
},
"01-07": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-01-07"
},
"01-08": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-01-08"
},
"01-14": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-01-14"
},
"01-15": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-01-15"
},
"01-21": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-01-21"
},
"01-22": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-01-22"
},
"01-23": {
"holiday": true,
"name": "初二",
"wage": 3,
"date": "2023-01-23"
},
"01-24": {
"holiday": true,
"name": "初三",
"wage": 3,
"date": "2023-01-24"
},
"01-25": {
"holiday": true,
"name": "初四",
"wage": 2,
"date": "2023-01-25"
},
"01-26": {
"holiday": true,
"name": "初五",
"wage": 2,
"date": "2023-01-26"
},
"01-27": {
"holiday": true,
"name": "初六",
"wage": 2,
"date": "2023-01-27"
},
"02-04": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-02-04"
},
"02-05": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-02-05"
},
"02-11": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-02-11"
},
"02-12": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-02-12"
},
"02-18": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-02-18"
},
"02-19": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-02-19"
},
"02-25": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-02-25"
},
"02-26": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-02-26"
},
"03-04": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-03-04"
},
"03-05": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-03-05"
},
"03-11": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-03-11"
},
"03-12": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-03-12"
},
"03-18": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-03-18"
},
"03-19": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-03-19"
},
"03-25": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-03-25"
},
"03-26": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-03-26"
},
"04-01": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-04-01"
},
"04-02": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-04-02"
},
"04-05": {
"holiday": true,
"name": "清明节",
"wage": 3,
"date": "2023-04-05",
"rest": 67
},
"04-08": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-04-08"
},
"04-09": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-04-09"
},
"04-15": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-04-15"
},
"04-16": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-04-16"
},
"04-22": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-04-22"
},
"04-29": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-04-29"
},
"04-30": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-04-30"
},
"05-01": {
"holiday": true,
"name": "劳动节",
"wage": 3,
"date": "2023-05-01"
},
"05-02": {
"holiday": true,
"name": "劳动节",
"wage": 3,
"date": "2023-05-02"
},
"05-03": {
"holiday": true,
"name": "劳动节",
"wage": 3,
"date": "2023-05-03"
},
"05-07": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-05-07"
},
"05-13": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-05-13"
},
"05-14": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-05-14"
},
"05-20": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-05-20"
},
"05-21": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-05-21"
},
"05-27": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-05-27"
},
"05-28": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-05-28"
},
"06-03": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-06-03"
},
"06-04": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-06-04"
},
"06-10": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-06-10"
},
"06-11": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-06-11"
},
"06-17": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-06-17"
},
"06-18": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-06-18"
},
"06-22": {
"holiday": true,
"name": "端午节",
"wage": 3,
"date": "2023-06-22"
},
"06-23": {
"holiday": true,
"name": "端午节",
"wage": 3,
"date": "2023-06-23"
},
"06-24": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-06-24"
},
"07-01": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-07-01"
},
"07-02": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-07-02"
},
"07-08": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-07-08"
},
"07-09": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-07-09"
},
"07-15": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-07-15"
},
"07-16": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-07-16"
},
"07-22": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-07-22"
},
"07-23": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-07-23"
},
"07-29": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-07-29"
},
"07-30": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-07-30"
},
"08-05": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-08-05"
},
"08-06": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-08-06"
},
"08-12": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-08-12"
},
"08-13": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-08-13"
},
"08-19": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-08-19"
},
"08-20": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-08-20"
},
"08-26": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-08-26"
},
"08-27": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-08-27"
},
"09-02": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-09-02"
},
"09-03": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-09-03"
},
"09-09": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-09-09"
},
"09-10": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-09-10"
},
"09-16": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-09-16"
},
"09-17": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-09-17"
},
"09-23": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-09-23"
},
"09-24": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-09-24"
},
"09-29": {
"holiday": true,
"name": "中秋节",
"wage": 3,
"date": "2023-09-29",
"rest": 1
},
"09-30": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-09-30"
},
"10-01": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-10-01"
},
"10-02": {
"holiday": true,
"name": "国庆节",
"wage": 3,
"date": "2023-10-02"
},
"10-03": {
"holiday": true,
"name": "国庆节",
"wage": 2,
"date": "2023-10-03"
},
"10-04": {
"holiday": true,
"name": "国庆节",
"wage": 2,
"date": "2023-10-04"
},
"10-05": {
"holiday": true,
"name": "国庆节",
"wage": 2,
"date": "2023-10-05"
},
"10-06": {
"holiday": true,
"name": "国庆节",
"wage": 2,
"date": "2023-10-06"
},
"10-14": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-10-14"
},
"10-15": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-10-15"
},
"10-21": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-10-21"
},
"10-22": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-10-22"
},
"10-28": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-10-28"
},
"10-29": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-10-29"
},
"11-04": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-11-04"
},
"11-05": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-11-05"
},
"11-11": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-11-11"
},
"11-12": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-11-12"
},
"11-18": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-11-18"
},
"11-19": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-11-19"
},
"11-25": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-11-25"
},
"11-26": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-11-26"
},
"12-02": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-12-02"
},
"12-03": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-12-03"
},
"12-09": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-12-09"
},
"12-10": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-12-10"
},
"12-16": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-12-16"
},
"12-17": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-12-17"
},
"12-23": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-12-23"
},
"12-24": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-12-24"
},
"12-30": {
"name": "周六",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-12-30"
},
"12-31": {
"name": "周日",
"target": "周末",
"wage": 2,
"type": 1,
"date": "2023-12-31"
}
}
}

浙公网安备 33010602011771号