c#考勤设计如何把一次刷卡记录表示为上下班记录
3个回答
展开全部
假定数据库有
id(自增序号)
user(用户名)
am(上午打卡时间)
pm(下午打卡时间)
createtime(默认值getdate(),记录创建时间
这五个字段
当打卡时, 取当前时间至dt.
如果dt为有效的上午或者下午打卡时间,则进行下一步,否则提示不为有效打卡时间。
假定当前用户为curruser
从数据数查询出curruser今天的打卡数据(即createtime距离今天0点不超过24小时),假定如果没有找id为0,找到了id则为对应的记录号。
if dt为有效上午打卡时间
{
如果id=0 则插入数据(插入数据包括user,am)
否则如果id>0,则表示用户今天已经打过卡了
}
else if dt为有效下午时间
{
如果id=0 则插入数据(插入数据user,pm);
否则如果id>0,则查询id对应的数据的pm是否为空值,如果为空则更新id那一条的pm,如果不为空则表示用户下午已经打过卡了。
}
id(自增序号)
user(用户名)
am(上午打卡时间)
pm(下午打卡时间)
createtime(默认值getdate(),记录创建时间
这五个字段
当打卡时, 取当前时间至dt.
如果dt为有效的上午或者下午打卡时间,则进行下一步,否则提示不为有效打卡时间。
假定当前用户为curruser
从数据数查询出curruser今天的打卡数据(即createtime距离今天0点不超过24小时),假定如果没有找id为0,找到了id则为对应的记录号。
if dt为有效上午打卡时间
{
如果id=0 则插入数据(插入数据包括user,am)
否则如果id>0,则表示用户今天已经打过卡了
}
else if dt为有效下午时间
{
如果id=0 则插入数据(插入数据user,pm);
否则如果id>0,则查询id对应的数据的pm是否为空值,如果为空则更新id那一条的pm,如果不为空则表示用户下午已经打过卡了。
}
展开全部
一次刷卡怎么能既表示成上班、又表示成下班?那打卡还有啥意义了?
建议判断用户打卡次数。如果是当天第一次打卡,那么就是上班记录;当天第二次打卡,就是下班;当天有三次以上打卡,忽略不记入数据库。过了当天午夜12点(也就是第二天了,或者可以设置为次日凌晨3点啊4点啊),打卡次数清零。
建议判断用户打卡次数。如果是当天第一次打卡,那么就是上班记录;当天第二次打卡,就是下班;当天有三次以上打卡,忽略不记入数据库。过了当天午夜12点(也就是第二天了,或者可以设置为次日凌晨3点啊4点啊),打卡次数清零。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-21
展开全部
你的意思是 刷卡一次 记录里面就显示为 上班跟下班 还是说根据时间显示上班或者下班?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询