我现在的问题是:
已知厂里的职工有5个班次分别为1班2班3班4班5班。按照5班三运转的方式上班,也就是说每天有三个班在上班。
在2011年6月9日上班的班次是1班,2班,3班。2011年6月10日上班的班次是4班,5班,1班。2011年6月11日上班的班次是2班,3班,4班。以此类推。能帮我实现在数据库里列出出今后1年的每天是哪些班在上班。比如列出2011年1月1日到2011年12月31日的排班。直观点就是达到 1日 2日 3日 4日 以此类推出来的1年的结果。请高手指点。 123 451 234 512
已知厂里的职工有5个班次分别为1班2班3班4班5班。按照5班三运转的方式上班,也就是说每天有三个班在上班。
在2011年6月9日上班的班次是1班,2班,3班。2011年6月10日上班的班次是4班,5班,1班。2011年6月11日上班的班次是2班,3班,4班。以此类推。能帮我实现在数据库里列出出今后1年的每天是哪些班在上班。比如列出2011年1月1日到2011年12月31日的排班。直观点就是达到 1日 2日 3日 4日 以此类推出来的1年的结果。请高手指点。 123 451 234 512
$arrange=array(
0=>123,
1=>451,
2=>234,
3=>512,
4=>345
);
function arrangeDate($date,$arrange){
$minus=(int)(strtotime($date)-strtotime('2011-6-9'))/(24*3600);
$mod=$minus%5;
if($mod<0)
echo $arrange[$mod+5];
else
echo $arrange[$mod];
return TRUE;
}
arrangeDate('2011-6-10',$arrange);
时间 班1 班2 班32011-6-10 4 5 1
$arrange=array(
0=>'1,2,3',
1=>'4,5,1',
2=>'2,3,4',
3=>'5,1,2',
4=>'3,4,5'
);//这是各个班次,按照1 2 3开始排列,往数据库插入时,写个split或explode就行
function arrangeDate($date,$arrange){
$minus=(int)(strtotime($date)-strtotime('2011-6-9'))/(24*3600);
$mod=$minus%5;
if($mod<0)//这是日期早于6月9号的,因为你给的数据是6月9号的班次是1 2 3,只能以此为基准
echo $arrange[$mod+5];//你可以把echo改为数据库插入语句
else//这是晚于6月9号的
echo $arrange[$mod];
return TRUE;
}
arrangeDate('2011-6-10',$arrange);//这里循环调用即可以实现循环往数据库里插入