吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 916|回复: 18
收起左侧

[经验求助] 求助一下 打卡计算工时

[复制链接]
Sweetbabycc 发表于 2026-2-2 14:51
100吾爱币
我们公司的打卡记录一般4次 也有比这多  是刷脸记录。2025-01-27 16:38:51   2025-01-27 12:39:27   2025-01-27 11:32:01   2025-01-27 06:40:45  。要么是这种 2026/1/24 22:12:40  2026/1/24 6:39:37
有什么软件和wps工时可以很快计算出来吗  人比较多 真心求助!

发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

十万菠萝拍黄瓜 发表于 2026-2-2 15:07
传个示例文件看看?
enoch316 发表于 2026-2-2 15:16
https://www.bilibili.com/video/BV1um411Q77K/?vd_source=0353405a84bc3be998ccf63772af8a8a
夏之萧瑟 发表于 2026-2-2 15:51
导出来的记录是什么样的?什么格式?传个附件。
 楼主| Sweetbabycc 发表于 2026-2-2 17:15

我不会传附件 得用网址吗
十万菠萝拍黄瓜 发表于 2026-2-2 19:41
Sweetbabycc 发表于 2026-2-2 17:15
我不会传附件 得用网址吗

可以传到度盘或者蓝奏之类的网盘上,网址发出来
lzy8108 发表于 2026-2-2 19:49
您这个里面涉不涉及到早班、中班、晚班,如果有分班次,每个班次有效工作时间段从几点到几点?多久调一次班?加班时间是另算还是计入总工时?加班还分为平时加班、周末加班、法定假日加班,是否需要分别计算时长?
lzy8108 发表于 2026-2-2 19:54
可以帮你写一个VBA代码,或者用函数公式来计算,不过最轻松的肯定还是VBA代码实现只要提供数据,一键点击运行代码,直接出统计汇总后的结果数据,你只需要负责动下手指,点击一下鼠标左键,如果数据量不大的情况下,可能秒出结果,数据量大的话,可能一盏茶的功夫也能出来结果,这番操作下来,就一个字能形容:爽!
esc1m 发表于 2026-2-2 23:23

excel/wps手动转换数据格式再加减法,excel/wps写公式/vba,bat/powershell/python/matlab等写处理脚本,AI/本地模型,都是可行的。

这事儿很简单,办法很多,建议传个附件/复制一段有特征的文本,去除隐私信息。楼上每个人应该都有解决方案,但没有示例求助就没有意义。

实在不行,上面每个方法都可以去查一下,研究怎么做。


给一个简单的powershell示例,如果是windows电脑,能不装软件直接用(搜一下怎么用Powershell ISE):

# =================数据区域=================
$inputData = @"
2025-01-27 16:38:51   2025-01-27 12:39:27   2025-01-27 11:32:01   2025-01-27 06:40:45
2026/1/24 22:12:40  2026/1/24 6:39:37
2025-02-02 18:00:00   2025-02-02 09:00:00   2025-02-02 12:00:00
"@
# =========================================

$pattern = "\d{4}[-/]\d{1,2}[-/]\d{1,2}\s+\d{1,2}:\d{2}:\d{2}"

$results = @()

# 按行读取数据
$inputData -split "`n" | ForEach-Object {
    $line = $_.Trim()

    # 1. 在当前行中提取所有看起来像时间的内容
    $matches = [regex]::Matches($line, $pattern)

    if ($matches.Count -ge 2) {
        # 2. 将文本转为时间对象,并从小到大排序
        # 即使原始数据是乱序的 (如下午在上午前面),排序后第一个就是上班,最后一个就是下班
        $times = $matches | ForEach-Object { [DateTime]$_.Value } | Sort-Object

        $startTime = $times[0]               # 最早时间
        $endTime   = $times[$times.Count - 1] # 最晚时间

        # 3. 计算时间差
        $duration = $endTime - $startTime

        # 4. 生成结果对象
        $results += [PSCustomObject]@{
            日期     = $startTime.ToString("yyyy-MM-dd")
            星期     = $startTime.DayOfWeek
            上班时间 = $startTime.ToString("HH:mm:ss")
            下班时间 = $endTime.ToString("HH:mm:ss")
            总工时   = "{0}小时 {1}分钟" -f [math]::Floor($duration.TotalHours), $duration.Minutes
            原始工时 = $duration.ToString() # 方便核对
            打卡次数 = $times.Count
        }
    }
}

# =================输出区域=================
# 将结果直接弹窗显示表格,支持复制到 Excel
$results | Out-GridView -Title "考勤计算结果 (Ctrl+A 全选可复制到 Excel)"

# 如果你想直接在控制台看,取消下面这行的注释
# $results | Format-Table -AutoSize
 楼主| Sweetbabycc 发表于 2026-2-3 08:06
lzy8108 发表于 2026-2-2 19:49
您这个里面涉不涉及到早班、中班、晚班,如果有分班次,每个班次有效工作时间段从几点到几点?多久调一次班 ...

一般就是看上午有没有打卡 下午有没有打卡记录 不分早晚班 平常加班也不用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-11-4 07:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表