上午上班:08:30—12:00
下午下午:14:00—18:00
条件是:在一天内请假,包括起始时间,结束时间,我怎么知道请假时间落在哪个区间内
规则如下:
8:30—11:30 这时类型为:上午上班(8:30)
8:30—12:30 这时类型为: 上午上班(8:30),上午下班(12:00)
8:30—14:30 这时类型为: 上午上班(8:30),上午下班(12:00),下午上班(14:00)
最长的时间段为:8:30—18:00 这时的类型为:上午上班,上午下班,下午上班,下午下班
有没有什么算法,不用我把下面每种情况都判断一遍。
第一种:
8:30—11:30
8:30—12:30
8:30—14:30
8:30—18:00
第二种:
9:30—11:30
9:30—12:30
9:30—14:30
9:30—18:00
第三种:
12:00—13:30
12:00—14:30
12:00—18:00
第四种:
12:30—13:30
12:30—14:30
12:30—18:00
第五种:
14:00—15:30
14:00—18:00
第六种:
14:30—15:00
14:30—18:00
下午下午:14:00—18:00
条件是:在一天内请假,包括起始时间,结束时间,我怎么知道请假时间落在哪个区间内
规则如下:
8:30—11:30 这时类型为:上午上班(8:30)
8:30—12:30 这时类型为: 上午上班(8:30),上午下班(12:00)
8:30—14:30 这时类型为: 上午上班(8:30),上午下班(12:00),下午上班(14:00)
最长的时间段为:8:30—18:00 这时的类型为:上午上班,上午下班,下午上班,下午下班
有没有什么算法,不用我把下面每种情况都判断一遍。
第一种:
8:30—11:30
8:30—12:30
8:30—14:30
8:30—18:00
第二种:
9:30—11:30
9:30—12:30
9:30—14:30
9:30—18:00
第三种:
12:00—13:30
12:00—14:30
12:00—18:00
第四种:
12:30—13:30
12:30—14:30
12:30—18:00
第五种:
14:00—15:30
14:00—18:00
第六种:
14:30—15:00
14:30—18:00
ID--请假人-------------起始时间----------------终止时间
1---小张------ 2005-06-21 08:30:00.000---2005-06-21 12:00:00.000
另一边考勤是张表
ID-----姓名-------------打卡时间------------打卡类型--------备注-----
ID EmpName CowaDt CowaType Comment
1------小张----2005-06-20 07:26:45.000-----上午上班----07:26:45;出勤
如果因公外出请假记录存在,这时自动在考勤表中加二条记录
2------小张----2005-06-21 08:30:00.000-----上午上班----08:30:00;出勤
3------小张----2005-06-21 12:00:00.000-----上午下班----12:00:00;出勤
意思大概就是这样...
大致上是这样:
if(start<="上午上班")
{
fun1();
}
else if()
{
fun2();
}
...
else if(start=="下午下班")
{
fun7();
}fun7()
{
//写记录下午下班
}
大致上就是这样的,暂时没什么别的方法,或者你考虑一下用SQL能否解决。