238 lines
7.9 KiB
PHP
238 lines
7.9 KiB
PHP
|
|
<?php
|
|||
|
|
include_once("virtual_data.php");
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ֵ
|
|||
|
|
function vmdata($vdata_arr){
|
|||
|
|
if(date('Y',strtotime($vdata_arr['star'])) == date('Y')){//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
$star = date('z',strtotime($vdata_arr['star']))+1;
|
|||
|
|
$end = date('z')+1-$star;
|
|||
|
|
$jyz = vmdata_se($vdata_arr,$star,$end);
|
|||
|
|
}elseif(date('Y',strtotime($vdata_arr['star'])) == date('Y',strtotime("-1 year"))){//ȥ<><C8A5>
|
|||
|
|
//<2F><><EFBFBD>꾭<EFBFBD><EABEAD>ֵ
|
|||
|
|
$jn_end = date('z');
|
|||
|
|
$jn_jyz = vmdata_se($vdata_arr,1,$jn_end);
|
|||
|
|
//ȥ<>꾭<EFBFBD><EABEAD>ֵ
|
|||
|
|
$qn_star = date('z',strtotime($vdata_arr['star']))+1;
|
|||
|
|
$qn_end_s = date("L",strtotime("-1 year")) == 1 ? 366 : 365;
|
|||
|
|
$qn_end = $qn_end_s-$qn_star+1;
|
|||
|
|
$qn_jyz = vmdata_se($vdata_arr,$qn_star,$qn_end);
|
|||
|
|
$jyz = $qn_jyz+$jn_jyz;
|
|||
|
|
}elseif(date('Y',strtotime($vdata_arr['star'])) < date('Y')){//N<><4E>
|
|||
|
|
//<2F><><EFBFBD>꾭<EFBFBD><EABEAD>ֵ
|
|||
|
|
$jn_end = date('z');
|
|||
|
|
$jn_jyz = vmdata_se($vdata_arr,1,$jn_end);
|
|||
|
|
//ע<><D7A2><EFBFBD>꾭<EFBFBD><EABEAD>ֵ
|
|||
|
|
$zc_star = date('z',strtotime($vdata_arr['star']))+1;
|
|||
|
|
$zc_end = 366-$zc_star;
|
|||
|
|
$zc_jyz = vmdata_se($vdata_arr,$zc_star,$zc_end);
|
|||
|
|
//ȫ<>꾭<EFBFBD><EABEAD>ֵ
|
|||
|
|
$qn_jyz = vmdata_se($vdata_arr,1,365);
|
|||
|
|
$year = date('Y')-date('Y',strtotime($vdata_arr['star']))-1;
|
|||
|
|
$jyz = ($qn_jyz*$year)+$jn_jyz+$zc_jyz;
|
|||
|
|
}
|
|||
|
|
return $jyz;
|
|||
|
|
}
|
|||
|
|
//<2F><><EFBFBD>㾭<EFBFBD><E3BEAD>ֵ
|
|||
|
|
function vmdata_se($vdata_arr,$star,$end){
|
|||
|
|
$inc_mj_js = 8;
|
|||
|
|
$inc_ddz_js = 6;
|
|||
|
|
$inc_pdk_js = 8;
|
|||
|
|
$inc_nn_js = 10;
|
|||
|
|
$inc_dz_js = 5;
|
|||
|
|
$inc_ss_js = 10;
|
|||
|
|
$inc_zjh_js = 6;
|
|||
|
|
$mj_arr = array_slice($vdata_arr['xmj'],$star,$end);
|
|||
|
|
$ddz_arr = array_slice($vdata_arr['xddz'],$star,$end);
|
|||
|
|
$pdk_arr = array_slice($vdata_arr['xpdk'],$star,$end);
|
|||
|
|
$nn_arr = array_slice($vdata_arr['xnn'],$star,$end);
|
|||
|
|
$dz_arr = array_slice($vdata_arr['xdz'],$star,$end);
|
|||
|
|
$ss_arr = array_slice($vdata_arr['xss'],$star,$end);
|
|||
|
|
$zjh_arr = array_slice($vdata_arr['xzjh'],$star,$end);
|
|||
|
|
$mj_js = array_sum($mj_arr);
|
|||
|
|
$ddz_js = array_sum($ddz_arr);
|
|||
|
|
$pdk_js = array_sum($pdk_arr);
|
|||
|
|
$nn_js = array_sum($nn_arr);
|
|||
|
|
$dz_js = array_sum($dz_arr);
|
|||
|
|
$ss_js = array_sum($ss_arr);
|
|||
|
|
$zjh_js = array_sum($zjh_arr);
|
|||
|
|
$mj_jyz = $mj_js ? round($mj_js/$inc_mj_js) : 0;
|
|||
|
|
$ddz_jyz = $ddz_js ? round($ddz_js/$inc_ddz_js) : 0;
|
|||
|
|
$pdk_jyz = $pdk_js ? round($pdk_js/$inc_pdk_js) : 0;
|
|||
|
|
$nn_jyz = $nn_js ? round($nn_js/$inc_nn_js) : 0;
|
|||
|
|
$dz_jyz = $dz_js ? round($dz_js/$inc_dz_js) : 0;
|
|||
|
|
$ss_jyz = $ss_js ? round($ss_js/$inc_ss_js) : 0;
|
|||
|
|
$zjh_jyz = $zjh_js ? round($zjh_js/$inc_zjh_js) : 0;
|
|||
|
|
$jyz = $mj_jyz+$ddz_jyz+$ddz_pdk+$nn_jyz+$dz_jyz+$ss_jyz+$zjh_jyz;
|
|||
|
|
//print_r($mj_arr);
|
|||
|
|
return $jyz;
|
|||
|
|
}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ա<EFBFBD><D5A1>¾<EFBFBD><C2BE><EFBFBD>
|
|||
|
|
function vmdate($vdata_arr,$date){
|
|||
|
|
$type_num = explode("-",$date);
|
|||
|
|
if(count($type_num) == 3){//<2F>վ<EFBFBD><D5BE><EFBFBD>
|
|||
|
|
if($date >= $vdata_arr['star']){
|
|||
|
|
if($date == date('Y-m-d')){//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
return vmday($vdata_arr);
|
|||
|
|
}elseif($date > date('Y-m-d')){//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
return ['wz'=>0,'data'=>['Mj'=>0,'Ddz'=>0,'Pdk'=>0,'Niu'=>0,'Dz'=>0,'Ss'=>0,'Zjh'=>0,'Pk'=>0]];
|
|||
|
|
}
|
|||
|
|
$dan = date('z',strtotime($date))+1;
|
|||
|
|
$ret = [
|
|||
|
|
'Mj' => $vdata_arr['xmj'][$dan],
|
|||
|
|
'Ddz' => $vdata_arr['xddz'][$dan],
|
|||
|
|
'Pdk' => $vdata_arr['xpdk'][$dan],
|
|||
|
|
'Niu' => $vdata_arr['xnn'][$dan],
|
|||
|
|
'Dz' => $vdata_arr['xdz'][$dan],
|
|||
|
|
'Ss' => $vdata_arr['xss'][$dan],
|
|||
|
|
'Zjh' => $vdata_arr['xzjh'][$dan],
|
|||
|
|
];
|
|||
|
|
$ret['Pk'] = $ret['Ddz']+$ret['Niu']+$ret['Pdk']+$ret['Dz']+$ret['Ss']+$ret['Zjh'];
|
|||
|
|
return ['wz'=>$dan,'data'=>$ret];
|
|||
|
|
}else{
|
|||
|
|
return ['wz'=>0,'data'=>['Mj'=>0,'Ddz'=>0,'Pdk'=>0,'Niu'=>0,'Dz'=>0,'Ss'=>0,'Zjh'=>0,'Pk'=>0]];
|
|||
|
|
}
|
|||
|
|
}elseif(count($type_num) == 2){//<2F>¾<EFBFBD><C2BE><EFBFBD>
|
|||
|
|
$day_da = vmday($vdata_arr);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
$zc_month = date('Y-m',strtotime($vdata_arr['star']));
|
|||
|
|
$mj_js = $ddz_js = $pdk_js =$nn_js = $dz_js = $ss_js = $zjh_js = 0;
|
|||
|
|
if($date > $zc_month){
|
|||
|
|
$star = date('z',strtotime($date))+1;
|
|||
|
|
if($date > date('Y-m')){
|
|||
|
|
return ['wz'=>0,'data'=>['Mj'=>0,'Ddz'=>0,'Pdk'=>0,'Niu'=>0,'Dz'=>0,'Ss'=>0,'Zjh'=>0,'Pk'=>0]];
|
|||
|
|
}elseif(date('Y-m') > $date){
|
|||
|
|
//echo "4";
|
|||
|
|
$end_t = date('z', strtotime($date." +1 month -1 day"))+1;
|
|||
|
|
$end = date('z', strtotime($date." +1 month -1 day"))-$star+2;
|
|||
|
|
}else{//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD> <20><><EFBFBD>¾<EFBFBD><C2BE><EFBFBD>
|
|||
|
|
//echo "3";
|
|||
|
|
$end_t = date('z')+1;
|
|||
|
|
$end = date('z')-$star+1;
|
|||
|
|
$mj_js = $day_da['data']['Mj'];
|
|||
|
|
$ddz_js = $day_da['data']['Ddz'];
|
|||
|
|
$pdk_js = $day_da['data']['Pdk'];
|
|||
|
|
$nn_js = $day_da['data']['Niu'];
|
|||
|
|
$dz_js = $day_da['data']['Dz'];
|
|||
|
|
$ss_js = $day_da['data']['Ss'];
|
|||
|
|
$zjh_js = $day_da['data']['Zjh'];
|
|||
|
|
}
|
|||
|
|
}elseif($date == $zc_month){//ע<><D7A2><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ǰ<EFBFBD><C7B0>
|
|||
|
|
$star = date('z',strtotime($vdata_arr['star']))+1;
|
|||
|
|
if(date('Y-m') > $zc_month){
|
|||
|
|
//echo "2";
|
|||
|
|
$end_t = date('z', strtotime($date." +1 month -1 day"))+1;
|
|||
|
|
$end = date('z', strtotime($date." +1 month -1 day"))-$star+2;
|
|||
|
|
}else{//ע<><D7A2>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD> <20><><EFBFBD>¾<EFBFBD><C2BE><EFBFBD>
|
|||
|
|
//echo "1";
|
|||
|
|
$end_t = date('z');
|
|||
|
|
$end = date('z')-$star+1;
|
|||
|
|
$mj_js = $day_da['data']['Mj'];
|
|||
|
|
$pdk_js = $day_da['data']['Pdk'];
|
|||
|
|
$ddz_js = $day_da['data']['Ddz'];
|
|||
|
|
$nn_js = $day_da['data']['Niu'];
|
|||
|
|
$dz_js = $day_da['data']['Dz'];
|
|||
|
|
$ss_js = $day_da['data']['Ss'];
|
|||
|
|
$zjh_js = $day_da['data']['Zjh'];
|
|||
|
|
}
|
|||
|
|
}else{
|
|||
|
|
return ['wz'=>0,'data'=>['Mj'=>0,'Ddz'=>0,'Pdk'=>0,'Niu'=>0,'Dz'=>0,'Ss'=>0,'Zjh'=>0,'Pk'=>0]];
|
|||
|
|
}
|
|||
|
|
$mj_arr = array_slice($vdata_arr['xmj'],$star,$end);
|
|||
|
|
$ddz_arr = array_slice($vdata_arr['xddz'],$star,$end);
|
|||
|
|
$pdk_arr = array_slice($vdata_arr['xpdk'],$star,$end);
|
|||
|
|
$nn_arr = array_slice($vdata_arr['xnn'],$star,$end);
|
|||
|
|
$dz_arr = array_slice($vdata_arr['xdz'],$star,$end);
|
|||
|
|
$ss_arr = array_slice($vdata_arr['xss'],$star,$end);
|
|||
|
|
$zjh_arr = array_slice($vdata_arr['xzjh'],$star,$end);
|
|||
|
|
$mj_js += array_sum($mj_arr);
|
|||
|
|
$ddz_js += array_sum($ddz_arr);
|
|||
|
|
$pdk_js += array_sum($pdk_arr);
|
|||
|
|
$nn_js += array_sum($nn_arr);
|
|||
|
|
$dz_js += array_sum($dz_arr);
|
|||
|
|
$ss_js += array_sum($ss_arr);
|
|||
|
|
$zjh_js += array_sum($zjh_arr);
|
|||
|
|
$pk = $ddz_js+$nn_js+$pdk_js+$dz_js+$ss_js+$zjh_js;
|
|||
|
|
return ['wz'=>$star.','.$end_t.'('.$end.')','data'=>['Mj'=>$mj_js,'Ddz'=>$ddz_js,'Pdk'=>$pdk_js,'Niu'=>$nn_js,'Dz'=>$dz_js,'Ss'=>$ss_js,'Zjh'=>$zjh_js,'Pk'=>$pk]];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//<2F><><EFBFBD>㵱<EFBFBD><E3B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
function vmday($vdata_arr){
|
|||
|
|
$dan = date('z')+1;
|
|||
|
|
$sj = intval(date('Hi'));
|
|||
|
|
foreach($vdata_arr['day'] as $k => $v){
|
|||
|
|
if($sj > $k){
|
|||
|
|
$bfb_mj = $v;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if($vdata_arr['dayn']){
|
|||
|
|
foreach($vdata_arr['dayn'] as $k => $v){
|
|||
|
|
if($sj > $k){
|
|||
|
|
$bfb_nn = $v;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}else{
|
|||
|
|
$bfb_nn = 1;
|
|||
|
|
}
|
|||
|
|
if($vdata_arr['dayd']){
|
|||
|
|
foreach($vdata_arr['dayd'] as $k => $v){
|
|||
|
|
if($sj > $k){
|
|||
|
|
$bfb_ddz = $v;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}else{
|
|||
|
|
$bfb_ddz = 1;
|
|||
|
|
}
|
|||
|
|
if($vdata_arr['dayz']){
|
|||
|
|
foreach($vdata_arr['dayz'] as $k => $v){
|
|||
|
|
if($sj > $k){
|
|||
|
|
$bfb_dz = $v;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}else{
|
|||
|
|
$bfb_dz = 1;
|
|||
|
|
}
|
|||
|
|
if($vdata_arr['days']){
|
|||
|
|
foreach($vdata_arr['days'] as $k => $v){
|
|||
|
|
if($sj > $k){
|
|||
|
|
$bfb_ss = $v;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}else{
|
|||
|
|
$bfb_ss = 1;
|
|||
|
|
}
|
|||
|
|
if($vdata_arr['dayj']){
|
|||
|
|
foreach($vdata_arr['dayj'] as $k => $v){
|
|||
|
|
if($sj > $k){
|
|||
|
|
$bfb_zjh = $v;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}else{
|
|||
|
|
$bfb_zjh = 1;
|
|||
|
|
}
|
|||
|
|
if($vdata_arr['dayp']){
|
|||
|
|
foreach($vdata_arr['dayp'] as $k => $v){
|
|||
|
|
if($sj > $k){
|
|||
|
|
$bfb_pdk = $v;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}else{
|
|||
|
|
$bfb_pdk = 1;
|
|||
|
|
}
|
|||
|
|
$ret = [
|
|||
|
|
'Mj' => intval($vdata_arr['xmj'][$dan]*$bfb_mj),
|
|||
|
|
'Ddz' => intval($vdata_arr['xddz'][$dan]*$bfb_ddz),
|
|||
|
|
'Pdk' => intval($vdata_arr['xpdk'][$dan]*$bfb_pdk),
|
|||
|
|
'Niu' => intval($vdata_arr['xnn'][$dan]*$bfb_nn),
|
|||
|
|
'Dz' => intval($vdata_arr['xdz'][$dan]*$bfb_dz),
|
|||
|
|
'Ss' => intval($vdata_arr['xss'][$dan]*$bfb_ss),
|
|||
|
|
'Zjh' => intval($vdata_arr['xzjh'][$dan]*$bfb_zjh),
|
|||
|
|
];
|
|||
|
|
//print_r($vdata_arr['day']);
|
|||
|
|
return ['wz'=>$dan,'data'=>$ret];
|
|||
|
|
}
|
|||
|
|
?>
|