go语言如何做后台(go语言处理钉钉考勤打卡)
go语言如何做后台(go语言处理钉钉考勤打卡)cellValue = strings.Replace(cellValue " " "" -1)首先清除其中可能含有的空格2 某些员工重复打卡 导致有很多个数据3 公司通常只统计上午上班打卡和下午下班打卡.但全天数据都存放在一个单元格 无法分离为上下午.用go语言可以很好的解决这些问题.假设提取到单元格的数据为cellValue.这是带换行符的字符串string.
很多公司现在利用钉钉人脸识别系统统计考勤 但不少用excel处理考勤的朋友反映:钉钉把员工同一天打卡数据集中在一个单元格内 难以分离和统计.
数据如图:
数据复杂点:
1 某些员工上午或下午请假或外出 导致只有1次或没有数据.
2 某些员工重复打卡 导致有很多个数据
3 公司通常只统计上午上班打卡和下午下班打卡.但全天数据都存放在一个单元格 无法分离为上下午.
用go语言可以很好的解决这些问题.假设提取到单元格的数据为cellValue.这是带换行符的字符串string.
首先清除其中可能含有的空格
cellValue = strings.Replace(cellValue " " "" -1)
其次把单元格很多个打卡时间数据 分割成由一个个独立打卡数据组成的切片slice 定义为times
var times []string
times = strings.Split( cellValue "\n") //以换行符为标记 进行分割
最后 判断是否含有上午或下午打卡时间
var haveMorngin haveAfternoon bool
for _ time := range times {
if time < "12:00" {
haveMorning = true
}
if time >="12:00" {
haveAfternoon = true
}
}
如果有早上有打卡 就取打卡数集的第一个数据
if haveMorning{
morningTime := times[0]
}
如果有下午打卡数据 就取打卡数集的最后一个数据
if haveAfternoon{
afternoonTime := times[len(times)-1]
}
从而分离且提取上午最早的一个数据和下午最晚的一个数据 后续配合数据结构struct进行逻辑判断即可.
最终成果:只需要动鼠标点一下就得到了所有打卡数据 并自动识别迟到 早退情况.负责考勤工作的后勤告别了加班统计考勤的日子.