• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    計算工作日

    發布: 2007-7-14 19:53 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 52次 | 進入軟件測試論壇討論

    領測軟件測試網 現在還有問題
    周一,周二不能做節假日
    可能算法上還有問題,等待你的更新...
    /**
      * sports98
      * flyruns@hotmail.com (歡迎交流)
      */
    ================
    <html>
    <head>
    <title>計算工作日(計算一年內)</title>
    </head>
    <style type="text/css">
        body,td {font-size:12px}
    </style>
    <body>
    <form action="<?=$_SERVER[PHP_SELF]?>" method="post" name="form1">
    <table cellpadding=0 cellspacing=0 border=0>
        <tr><td colspan=2 height=30 align=center>工作日計算器(計算一年內)
        <tr><td>開始日期:<td><input type="text" name="starttime" value="<?=date("Y")?>-01-01">
        <tr><td>結束日期:<td><input type="text" name="endtime" value="<?=date("Y-m-d")?>">
        <tr><td>周休息數:<td><input type="text" size=1 name="rest" value="2">天 始休日:
        <select name="restday">
        <option value="1">星期一</option>
        <option value="2">星期二</option>
        <option value="3">星期三</option>
        <option value="4">星期四</option>
        <option value="5">星期五</option>
        <option value="6" selected>星期六</option>
        <option value="7">星期七</option>
        </select>
        <tr><td valign=top>法定假期:<td>
        <textarea name="ordainrest" rows=7>05-01&5
    10-01&5</textarea>(&進行分隔)
        <tr><td>缺席天數:<td><input type="text" size=1 name="absent" value="0">天(請假等未工作日)
        <tr><td>加班天數:<td><input type="text" size=1 name="overtime" value="0">天
        <tr><td>補假天數:<td><input type="text" size=1 name="supplytime" value="0">天
        <input type="submit" value="計算數據">
    </table>
    </form>
    <?php
    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 "<br>缺席天數:".$_POST[absent]."天";
        echo "<br>加班日期:".$_POST[overtime]."天";
        echo "<br>補假日期:".$_POST[supplytime]."天";
        echo "<br>法定假期:<br>";
        $tmpa=explode("\n",$_POST[ordainrest]);
            for($Tmpb=0;$Tmpb<count($tmpa);$Tmpb++){
                $tmpc=explode("&",$tmpa[$Tmpb]);
                echo "          ".$tmpc[0]." 休息 ".$tmpc[1]." 天<br>";
                $tmpsize=date("z",mktime(0,0,0,substr($tmpc[0],0,2),substr($tmpc[0],3,2),date("Y")));//節假日的日期數據
                if($tmpsize>=$starttime && $tmpsize<=$endtime){
                    $alltime=$alltime-$tmpc[1];//從總的工作日中去掉法定日期
                }
            }
    //調試點    
    //    echo "<h3>$starttime $endtime</h3>";

        $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<$_POST[restday]){//不是休息日(指定的工作休息日),在指定休息日前
            $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 "<h3>$runday $ctmp $_POST[restday] $fweek</h3>";
        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 "<br>開始日期:".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 "<br>結束日期:".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 "<br>共計周末休息:".$ttmpa."×".$_POST[rest]."=".$ttmpa*$_POST[rest]."天<span onclick=\"if(document.all['allweek'].style.display==''){this.innerHTML='(+)';document.all['allweek'].style.display='none';}else{this.innerHTML='(-)';document.all['allweek'].style.display='';}\" style=\"cursor:hand\">(+)</span>";
        echo "<div id=\"allweek\" style=\"display:'none'\">";
        for($TTmpa=0;$TTmpa<$ttmpa;$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<br>";
        }
        echo "</div>";
        if($fweek==6){//周六
        }else if($fweek==0){//周日,則總休息日僅僅去一天休息日
            $alltime+=1;//增加一天
        }
        $allcday=$ttmpa*$_POST[rest];//總的工作休息日
        $alltime-=$allcday;
        echo "<hr size=1>有效的工作日:<font color=red>$alltime</font>";
    }
    ?>
    </body>
    </html>

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>