快捷搜索:  汽车  科技

go语言如何做后台(go语言处理钉钉考勤打卡)

go语言如何做后台(go语言处理钉钉考勤打卡)cellValue = strings.Replace(cellValue " " "" -1)首先清除其中可能含有的空格2 某些员工重复打卡 导致有很多个数据3 公司通常只统计上午上班打卡和下午下班打卡.但全天数据都存放在一个单元格 无法分离为上下午.用go语言可以很好的解决这些问题.假设提取到单元格的数据为cellValue.这是带换行符的字符串string.

很多公司现在利用钉钉人脸识别系统统计考勤 但不少用excel处理考勤的朋友反映:钉钉把员工同一天打卡数据集中在一个单元格内 难以分离和统计.

数据如图:

go语言如何做后台(go语言处理钉钉考勤打卡)(1)

数据复杂点:

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进行逻辑判断即可.

最终成果:只需要动鼠标点一下就得到了所有打卡数据 并自动识别迟到 早退情况.负责考勤工作的后勤告别了加班统计考勤的日子.

猜您喜欢: