<?php /*顯示原始碼*/ $file=__FILE__; require("src.php"); ?>
<h2>計算上班.做4休2</h2>
<p>計算上班.做4休2. 但是遇到<br>1.休日一僅休日<br>2.休一二僅休一</p><br>
<?php
$sunday_of_firstweek_this_year
="2017/1/1";
$date=strtotime($sunday_of_firstweek_this_year); //起始的第一天的php time格式(Linux timestampe秒數)
$x=6//0~6 一個週期是7天(0~6)
$y=2//休息天數是2天
$shift=empty($_GET["s"]) ? $_GET["s"]; //判斷平移的天數
$i=3+6-$shift//實際平移天數, 針對GusChuang先預設平移了3天
$sadd= ($shift+1)%6//平移天數+1天
$ssub= ($shift+5)%6//平移天數-1天 (不喜歡負數, 所以改為+5天)

function day($day){
  global 
$date,$week,$x,$y,$i;
  
$add_days=($week*7+$day)*24*60*60//第幾週的第幾天
  
if(($i)%$x<$y) { //如果遇到休息的天
    
$mark="休";
    if((
$i-1)%$x<$y && date("w",$date+$add_days-24*60*60)==0//如果前一天也休息, 而且前天是星期天
      
$mark="<span style='color:blue'>上班</span>"//改為上班
    
if(($i-1)%$x<$y && date("w",$date+$add_days-24*60*60)==1//如果前一天也休息, 而且前天是星期一
      
$mark="<span style='color:blue'>上班</span>"//改為上班
  
} else{
    
$mark="";
  }
  
$i++;
  return 
date("m/d",$date+$add_days) . "<br>$mark";
}

?>
<style>
li {
  float:left;
  list-style-type: none;
  border: 1px solid black;
  padding: 3px 3px;
  width: 50px;
}
.clear {clear: both;}
.main {width: 450px;}
br {}
p {margin: 2px 2px;}
h3 {margin-bottom: 5px; }
form {display: inline-block;}
</style>
<form action="i13" method=GET><input type="hidden" name="s" value="<?=$sadd?>"><input type="submit" value="加一天"></form>
<form action="i13" method=GET><input type="hidden" name="s" value="<?=$ssub?>"><input type="submit" value="減一天"></form>
<div class="main">
<ul>
<?php for($week=0;$week<=730;$week++){ // 從第0週開始, 計算730週算到 2030年12月 ?>
<?php 
if (date("d",$date+($week*7+6)*24*60*60)<=7) { ?>
<h3 align="center"><?= date("Y 年 m ",$date+($week*7+6)*24*60*60?>月</h3>
<li><p align="center">日</p></li>
<li><p align="center">一</p></li>
<li><p align="center">二</p></li>
<li><p align="center">三</p></li>
<li><p align="center">四</p></li>
<li><p align="center">五</p></li>
<li><p align="center">六</p></li>
<div class="clear"></div>
<?php ?>
<li><?= day(0?><br></li>
<li><?= day(1?><br></li>
<li><?= day(2?><br></li>
<li><?= day(3?><br></li>
<li><?= day(4?><br></li>
<li><?= day(5?><br></li>
<li><?= day(6?><br></li>
<div class="clear"></div>
<?php ?>
</ul>
</div>

計算上班.做4休2

計算上班.做4休2. 但是遇到
1.休日一僅休日
2.休一二僅休一