.“周期天数”是指该部门所上班次的“上班”和“休息”的规律,例如:某个班次是上5天,休息2 天,其“周期天数”为 7 天。另一个三班制的班,上3天,休息1天,其“周期天数”为 4 天。3.“休息日”是指按规律,第几天是休息日。仍如上例:上 5 天,休2 天,周期为7天,“休息日”是第6天,第7天, 在“休自日”里输入“6,7”,以“逗号”分隔;而三班制的,上3天,休 1 天,第 4 天休息,则在“休息日”里输入“4”。这样的怎么计算出 就某个人的 排班表呢 谢谢了
解决方案 »
- 关于用socket在服务端与客户端建立连接
- 我连用了5次。程序变得反应有点慢了
- DLL入口问题。(50分)
- 有关messagedlg的问题!急!!!
- 怎样发送Raw IP数据包
- qtintf.dll是什么东西?为什么一定要他?如果没有装DELPHI
- 关于listview控件,代码这样写,会不会有问题
- dbgril中显示的数据怎么导出?
- 怎么把只有一个字母的string型转成char型
- Delphi中控制Excel? 。。。。。
- 请教 delphi字符串带(非与或符合 &&,||,!),想把他解释成if (...) then 语句,请教怎么做呢?
- 收到 “美国Borland软件公司北京代表处” 的传真,要钱来了
利用DaySpan函数计算出某一天距离开始上班的天数,然后求模运算,即可得这一天他是上的什么班
例如某个人2006年1月8日上班,他的上班周期为7,我们要求他2007年10月21日该上那个班,那我们利用DaySpan函数
求得天数为
procedure TForm1.Button1Click(Sender: TObject);
var
daynum:double;
a,b:TDate;
begin
a:=strtodate('2006-1-8');
b:=strtodate('2007-10-21');
daynum:=DaySpan(a,b);
showmessage('2006-1-8'+'到'+'2007-10-21'+'共有'+floattostr(daynum)+'天');
end;
求得共有651天,那么651模7得
procedure TForm1.Button2Click(Sender: TObject);
begin
showmessage(inttostr(651 mod 7));
end;
得0;
即为第7天,所以他这一天为休息日
假设有五十个员工,分为三个班组:A班,B班,C班
A班工作三天休息一天, B班工作五天休息两天,C班工作十天休息三天.第一步,录入员工信息,
第二步,录入班组信息(即三个班组,A,B,C, 同时录入他们的开如执行日期及结束日期,工作时间,休息时间)
班组名, 开始时间, 结束时间, 工作日期,休息日期
A 2007-1-1 2009-1-1 3 1
B 2007-2-1 2009-1-1 5 2
C 2007-2-1 2009-1-1 10 3根据这两张表,你就可以得出,每个员工,任意一天是休息,还是工作(注意开始日期,是周期的开始)..还有一个表,就那就是每个班组的上下班时间表,
根据这个表,这就可以知道每个员工,每一天打的考勤是迟到,早退还是无效记录....再加班员工每天的打卡记录表,基本上的表结构就是这样子的.