Files
wnmj/GonghuiWeb/inc/virtual2.php

199 lines
6.5 KiB
PHP
Raw Permalink Normal View History

2026-02-24 09:25:17 +08:00
<?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_nn_js = 10;
$inc_dz_js = 5;
$inc_ss_js = 10;
$mj_arr = array_slice($vdata_arr['xmj'],$star,$end);
$ddz_arr = array_slice($vdata_arr['xddz'],$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);
$mj_js = array_sum($mj_arr);
$ddz_js = array_sum($ddz_arr);
$nn_js = array_sum($nn_arr);
$dz_js = array_sum($dz_arr);
$ss_js = array_sum($ss_arr);
$mj_jyz = $mj_js ? round($mj_js/$inc_mj_js) : 0;
$ddz_jyz = $ddz_js ? round($ddz_js/$inc_ddz_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;
$jyz = $mj_jyz+$ddz_jyz+$nn_jyz+$dz_jyz+$ss_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,'Niu'=>0,'Dz'=>0,'Ss'=>0,'Pk'=>0]];
}
$dan = date('z',strtotime($date))+1;
$ret = [
'Mj' => $vdata_arr['xmj'][$dan],
'Ddz' => $vdata_arr['xddz'][$dan],
'Niu' => $vdata_arr['xnn'][$dan],
'Dz' => $vdata_arr['xdz'][$dan],
'Ss' => $vdata_arr['xss'][$dan],
];
$ret['Pk'] = $ret['Ddz']+$ret['Niu']+$ret['Dz']+$ret['Ss'];
return ['wz'=>$dan,'data'=>$ret];
}else{
return ['wz'=>0,'data'=>['Mj'=>0,'Ddz'=>0,'Niu'=>0,'Dz'=>0,'Ss'=>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 = $nn_js = $dz_js = $ss_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,'Niu'=>0,'Dz'=>0,'Ss'=>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'];
$nn_js = $day_da['data']['Niu'];
$dz_js = $day_da['data']['Dz'];
$ss_js = $day_da['data']['Ss'];
}
}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'];
$ddz_js = $day_da['data']['Ddz'];
$nn_js = $day_da['data']['Niu'];
$dz_js = $day_da['data']['Dz'];
$ss_js = $day_da['data']['Ss'];
}
}else{
return ['wz'=>0,'data'=>['Mj'=>0,'Ddz'=>0,'Niu'=>0,'Dz'=>0,'Ss'=>0,'Pk'=>0]];
}
$mj_arr = array_slice($vdata_arr['xmj'],$star,$end);
$ddz_arr = array_slice($vdata_arr['xddz'],$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);
$mj_js += array_sum($mj_arr);
$ddz_js += array_sum($ddz_arr);
$nn_js += array_sum($nn_arr);
$dz_js += array_sum($dz_arr);
$ss_js += array_sum($ss_arr);
$pk = $ddz_js+$nn_js+$dz_js+$ss_js;
return ['wz'=>$star.','.$end_t.'('.$end.')','data'=>['Mj'=>$mj_js,'Ddz'=>$ddz_js,'Niu'=>$nn_js,'Dz'=>$dz_js,'Ss'=>$ss_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;
}
$ret = [
'Mj' => intval($vdata_arr['xmj'][$dan]*$bfb_mj),
'Ddz' => intval($vdata_arr['xddz'][$dan]*$bfb_ddz),
'Niu' => intval($vdata_arr['xnn'][$dan]*$bfb_nn),
'Dz' => intval($vdata_arr['xdz'][$dan]*$bfb_dz),
'Ss' => intval($vdata_arr['xss'][$dan]*$bfb_ss),
];
echo $bfb_nn."|";
//print_r($vdata_arr['day']);
return ['wz'=>$dan,'data'=>$ret];
}
?>