.“周期天数”是指该部门所上班次的“上班”和“休息”的规律,例如:某个班次是上5天,休息2 天,其“周期天数”为 7 天。另一个三班制的班,上3天,休息1天,其“周期天数”为 4 天。3.“休息日”是指按规律,第几天是休息日。仍如上例:上 5 天,休2 天,周期为7天,“休息日”是第6天,第7天, 在“休自日”里输入“6,7”,以“逗号”分隔;而三班制的,上3天,休 1 天,第 4 天休息,则在“休息日”里输入“4”。这样的怎么计算出 就某个人的 排班表呢 谢谢了
解决方案 »
- 如何判断某个组件是否属于容器类?
- 怎么不能回复帖子了?
- 理不清思路了,delphi调用winapi 用一段时间后就不能用了~~~
- fastreport:如何将a4的报表打印到a5的纸张上?
- 绝对必要的日期函数
- 请问dxdbgrid问题
- 我安装了fastReport2.5(delphi7),可是在运行Demo时总提示找不到StrToXML等函数
- 用ADO连接数据库时,如何跳过输入密码
- 怎么判断 192.168.0.1的服务器上的sql server有没有运行
- 为什么设计时加载图片(Picture属性)会出错?
- 请教 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根据这两张表,你就可以得出,每个员工,任意一天是休息,还是工作(注意开始日期,是周期的开始)..还有一个表,就那就是每个班组的上下班时间表,
根据这个表,这就可以知道每个员工,每一天打的考勤是迟到,早退还是无效记录....再加班员工每天的打卡记录表,基本上的表结构就是这样子的.