现在还有问题
周一,周二不能做节假日
可能算法上还有问题,等待你的更新...
/**
* sports98
* flyruns@hotmail.com (欢迎交流)
*/
================
if(is_array($_POST)){//有POST数据
$starttime=date("z",mktime(0,0,0,substr($_POST[starttime],5,2),substr($_POST[starttime],8,2),substr($_POST[starttime],0,4)));
$endtime=date("z",mktime(0,0,0,substr($_POST[endtime],5,2),substr($_POST[endtime],8,2),substr($_POST[endtime],0,4)));
$alltime=$endtime-$starttime+1;
echo "自开始日期到结束日期,共:".$alltime."天";
echo "
缺席天数:".$_POST[absent]."天";
echo "
加班日期:".$_POST[overtime]."天";
echo "
补假日期:".$_POST[supplytime]."天";
echo "
法定假期:
";
$tmpa=explode("\n",$_POST[ordainrest]);
for($Tmpb=0;$Tmpb
echo " ".$tmpc[0]." 休息 ".$tmpc[1]." 天
";
$tmpsize=date("z",mktime(0,0,0,substr($tmpc[0],0,2),substr($tmpc[0],3,2),date("Y")));//节假日的日期数据
if($tmpsize>=$starttime && $tmpsize $alltime=$alltime-$tmpc[1];//从总的工作日中去掉法定日期
}
}
//调试点
// echo "
$starttime $endtime
";$alltime-=$_POST[absent];//扣除缺席天数
$alltime+=$_POST[overtime];//加上加班日期
$alltime-=$_POST[supplytime];//去掉补充的假期
//计算周休息日
$fweek=date("w",mktime(0,0,0,substr($_POST[starttime],5,2),substr($_POST[starttime],8,2),substr($_POST[starttime],0,4)));//获得开始日期的周数
$eweek=date("w",mktime(0,0,0,substr($_POST[endtime],5,2),substr($_POST[endtime],8,2),substr($_POST[endtime],0,4)));//结束周数
//这里要判断一下开始的星期天数(要求获得第一周的日期数)
if($fweek $ctmp=abs($_POST[restday]-$fweek);
$runday=date("d",mktime(0,0,0,substr($_POST[starttime],5,2),$ctmp+substr($_POST[starttime],8,2),substr($_POST[starttime],0,4)));
//获得第一周的日期
}else{//再指定休息日后(e.g. $fwwk=6 $_POST[restday]=2)
$ctmp=abs($fweek-$_POST[restday]);
$runday=date("d",mktime(0,0,0,substr($_POST[starttime],5,2),$ctmp+substr($_POST[starttime],8,2),substr($_POST[starttime],0,4)));
}
//调试点
// echo "
$runday $ctmp $_POST[restday] $fweek
";for($ttmpa=0;;$ttmpa++){
//将当前的节假日向后推7日,进行判断 最终$ttmpa为节假日数
$cday=date("z",mktime(0,0,0,substr($_POST[starttime],5,2),$runday+7*$ttmpa,substr($_POST[starttime],0,4)));
if($cday>$endtime){
break;
}
}
echo "
开始日期:".date("Y-m-d 星期w",mktime(0,0,0,substr($_POST[starttime],5,2),substr($_POST[starttime],8,2),substr($_POST[starttime],0,4)));;
echo "
结束日期:".date("Y-m-d 星期w",mktime(0,0,0,substr($_POST[endtime],5,2),substr($_POST[endtime],8,2),substr($_POST[endtime],0,4)));;
echo "
共计周末休息:".$ttmpa."×".$_POST[rest]."=".$ttmpa*$_POST[rest]."天(+)";
echo "
";
for($TTmpa=0;$TTmpa $dday=date("Y-m-d 星期w",mktime(0,0,0,substr($_POST[starttime],5,2),$runday+7*$TTmpa,substr($_POST[starttime],0,4)));
echo "$dday
";
}
echo "
";for($TTmpa=0;$TTmpa $dday=date("Y-m-d 星期w",mktime(0,0,0,substr($_POST[starttime],5,2),$runday+7*$TTmpa,substr($_POST[starttime],0,4)));
echo "$dday
";
}
echo "
if($fweek==6){//周六
}else if($fweek==0){//周日,则总休息日仅仅去一天休息日
$alltime+=1;//增加一天
}
$allcday=$ttmpa*$_POST[rest];//总的工作休息日
$alltime-=$allcday;
echo "
有效的工作日:$alltime";
}
?>
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
2 周前ByDDD
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3汉化版
中文版,非常好用

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),