工会web
This commit is contained in:
199
GonghuiWeb/inc/virtual2.php
Normal file
199
GonghuiWeb/inc/virtual2.php
Normal file
@@ -0,0 +1,199 @@
|
||||
<?php
|
||||
include_once("virtual_data.php");
|
||||
//计算虚拟人物 经验值
|
||||
function vmdata($vdata_arr){
|
||||
if(date('Y',strtotime($vdata_arr['star'])) == date('Y')){//今年
|
||||
$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"))){//去年
|
||||
//今年经验值
|
||||
$jn_end = date('z');
|
||||
$jn_jyz = vmdata_se($vdata_arr,1,$jn_end);
|
||||
//去年经验值
|
||||
$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年
|
||||
//今年经验值
|
||||
$jn_end = date('z');
|
||||
$jn_jyz = vmdata_se($vdata_arr,1,$jn_end);
|
||||
//注册年经验值
|
||||
$zc_star = date('z',strtotime($vdata_arr['star']))+1;
|
||||
$zc_end = 366-$zc_star;
|
||||
$zc_jyz = vmdata_se($vdata_arr,$zc_star,$zc_end);
|
||||
//全年经验值
|
||||
$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;
|
||||
}
|
||||
//计算经验值
|
||||
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;
|
||||
}
|
||||
//计算日、月局数
|
||||
function vmdate($vdata_arr,$date){
|
||||
$type_num = explode("-",$date);
|
||||
if(count($type_num) == 3){//日局数
|
||||
if($date >= $vdata_arr['star']){
|
||||
if($date == date('Y-m-d')){//当天局数
|
||||
return vmday($vdata_arr);
|
||||
}elseif($date > date('Y-m-d')){//超出当天时间
|
||||
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){//月局数
|
||||
$day_da = vmday($vdata_arr);//当天局数
|
||||
$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{//当前大于注册月 当月局数
|
||||
//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){//注册月为当前月
|
||||
$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{//注册为本月 当月局数
|
||||
//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]];
|
||||
}
|
||||
}
|
||||
//计算当天局数
|
||||
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];
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user