日期:2014-05-20  浏览次数:20747 次

如何用截取到的字符串计算考勤(大牛都来啊,帮帮小弟)
这个是我初始化好的数据,都存在了StringBuffer里。大牛门只需要从sb中取出数据,然后计算下面的几种:
1.计算迟到时间跟次数?
2.计算旷工(每天打1次打算旷工)?
每天打3次卡的只用第一次的时间跟最后一次打卡的时间计算!!!

public StringBuffer init()
{
StringBuffer sb = new StringBuffer();
sb.append("编号#姓名#部门#星期#打卡日期#打卡时间!");//标签栏

sb.append("00000004#佐藤英生#人事部#星期六#2011-10-08#08:21:59!");
sb.append("00000004#佐藤英生#人事部#星期六#2011-10-08#18:36:59!");

sb.append("00000004#佐藤英生#人事部#星期天#2011-10-09#08:17:59!");
sb.append("00000004#佐藤英生#人事部#星期天#2011-10-09#18:31:59!");

sb.append("00000004#佐藤英生#人事部#星期一#2011-10-11#18:12:59!");//11号为只打了一次卡

sb.append("00000004#佐藤英生#人事部#星期二#2011-10-12#08:16:59!");
sb.append("00000004#佐藤英生#人事部#星期二#2011-10-12#17:57:59!");

sb.append("00000004#佐藤英生#人事部#星期四#2011-10-14#08:10:59!");//14号打了3次卡
sb.append("00000004#佐藤英生#人事部#星期四#2011-10-14#17:40:59!");
sb.append("00000004#佐藤英生#人事部#星期四#2011-10-14#18:25:59!");

sb.append("00000004#佐藤英生#人事部#星期二#2011-10-25#08:54:59!");
sb.append("00000004#佐藤英生#人事部#星期二#2011-10-25#08:55:59!");

return sb;
}

下面是我截取好的一行一行的数据:

String str = sc.init().toString();
String subOver = str.substring(str.indexOf("!") + 1, str.length());
String[] strRow = subOver.split("!");




------解决方案--------------------
截取后放在list里吧 比如上班时间是 9点 ,取出该员工每天早上第一次的打卡时间 进行判断是否迟到 ,记录迟到的时间 你还要定一个中午的时间 比如 13点之前打卡的算迟到或是早到 ,13点之后未打卡的算矿工

------解决方案--------------------
你这个思路不对,如果有1000人,1个月下来,你要取多少数据?!1000×3×30=90000!所以不能这样设计数据库的逻辑的,应该在每天最后一次打卡结束后,都对当天的考勤统计一次,对有迟到和矿工的,插入专门的记录表里,你这个每次打卡的记录,当做历史信息可以查询,这样统计的时候,1000人,每天只有迟到和旷工的记录,没有几个人,逻辑清楚,实现简单。