开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

12
返回列表 发新帖
楼主: jiucai
收起左侧

[已解决] 时间范围外时间统计

 关闭 [复制链接]
结帖率:100% (5/5)
发表于 2025-9-21 17:28:43 | 显示全部楼层   辽宁省沈阳市
wangchen 发表于 2025-9-21 17:17
只按标题写的例子 一会补给你

.版本 2
.支持库 spec

.程序集 窗口程序集_启动窗口

.子程序 _开使_被单击
.局部变量 sj1, 文本型
.局部变量 sj2, 文本型
.局部变量 sj3, 文本型
.局部变量 sj4, 文本型
.局部变量 加班时间, 文本型
.局部变量 加班开始时间, 日期时间型
.局部变量 加班结束时间, 日期时间型
.局部变量 临时结束时间, 双精度小数型
.局部变量 加班时常, 双精度小数型

sj1 = 时间_格式化 (取现行时间 (), “yyyy-MM-dd”, ) + “ 08:00”
sj2 = 时间_格式化 (取现行时间 (), “yyyy-MM-dd”, ) + “ 12:00”
sj3 = 时间_格式化 (取现行时间 (), “yyyy-MM-dd”, ) + “ 14:30”
sj4 = 时间_格式化 (取现行时间 (), “yyyy-MM-dd”, ) + “ 17:30”
加班开始时间 = 到时间 (加班编辑框.内容)
加班结束时间 = 到时间 (结束编辑框.内容)
.如果真 (加班结束时间 > 到时间 (sj3) 且 加班结束时间 < 到时间 (sj4) 且 加班开始时间 ≥ 到时间 (sj2) 且 加班结束时间 < 增减时间 (到时间 (sj1), 5, 1))
    临时结束时间 = 取时间间隔 (加班结束时间, 到时间 (sj3), 7)
    加班结束时间 = 增减时间 (加班结束时间, 7, 0 - 临时结束时间)
    调试输出 (临时结束时间, “加班结束时间”, 加班结束时间)
.如果真结束
加班时常 = 取时间间隔 (加班结束时间, 加班开始时间, 7)
调试输出 (到文本 (“加班时常-”) + 到文本 (加班时常) + “-分钟”)



回复

使用道具 举报

结帖率:90% (75/83)
 楼主| 发表于 2025-9-21 17:42:37 | 显示全部楼层   四川省绵阳市
zainex 发表于 2025-9-21 17:21
可以把时间按分钟转成"时间表"来操作:
[e=1].版本 2
.支持库 spec

就是目前时间会跨天数的,比如2025-09-20 23:10开始加班到第二天2025-09-21 05:00  就会编辑框1 中的时间大于 编辑框2
回复

使用道具 举报

结帖率:90% (75/83)
 楼主| 发表于 2025-9-21 17:44:12 | 显示全部楼层   四川省绵阳市
wangchen 发表于 2025-9-21 17:28
.版本 2
.支持库 spec

这个还是取得两个编辑框相减的,比如下面这个还是会计算错误

补充内容 (2025-9-21 17:45):
加班的时间区间为12:01-14:29  下午的加班时间区间为17:31-07:59   这两个时间段内才算加班
4.png
回复

使用道具 举报

结帖率:100% (5/5)
发表于 2025-9-21 18:07:34 | 显示全部楼层   辽宁省沈阳市
jiucai 发表于 2025-9-21 17:44
这个还是取得两个编辑框相减的,比如下面这个还是会计算错误

补充内容 (2025-9-21 17:45):
  
子程序名返回值类型公开备 注
_开使_被单击  
变量名类 型静态数组备 注
sj1文本型 
sj2文本型 
sj3文本型 
sj4文本型 
加班时间文本型 
加班开始时间日期时间型 
加班结束时间日期时间型 
临时结束时间双精度小数型 
加班时常双精度小数型 
sj1 = 时间_格式化 (取现行时间 (), “yyyy-MM-dd”, )“ 08:00”
sj2 = 时间_格式化 (取现行时间 (), “yyyy-MM-dd”, )“ 12:00”
sj3 = 时间_格式化 (取现行时间 (), “yyyy-MM-dd”, )“ 14:30”
sj4 = 时间_格式化 (取现行时间 (), “yyyy-MM-dd”, )“ 17:30”
加班开始时间 = 到时间 (加班编辑框.内容)
加班结束时间 = 到时间 (结束编辑框.内容)
如果真 (加班结束时间 > 到时间 (sj3) 加班结束时间 < 到时间 (sj4) 加班开始时间 ≥ 到时间 (sj2) 加班结束时间 < 增减时间 (到时间 (sj1), 5, 1))
临时结束时间 = 取时间间隔 (加班结束时间, 到时间 (sj3), 7)
加班结束时间 = 增减时间 (加班结束时间, 7, 0 - 临时结束时间)
调试输出 (临时结束时间, “加班结束时间”, 加班结束时间)
如果真 (加班结束时间 > 到时间 (sj1))
临时结束时间 = 取时间间隔 (加班结束时间, 到时间 (sj1), 7)
加班结束时间 = 增减时间 (加班结束时间, 7, 0 - 临时结束时间)
加班时常 = 取时间间隔 (加班结束时间, 加班开始时间, 7)
调试输出 (到文本 (“加班时常-”)到文本 (加班时常)“-分钟”)


i支持库列表   支持库注释   
spec特殊功能支持库

回复

使用道具 举报

结帖率:90% (75/83)
 楼主| 发表于 2025-9-21 18:36:00 | 显示全部楼层   四川省绵阳市
wangchen 发表于 2025-9-21 18:07
[e=0].版本 2
.支持库 spec

谢谢哥  但是还是错误啊  202509211100     202509211900   * “加班时常--179-分钟”

补充内容 (2025-9-21 18:36):
有些对的,多测试几个就会有错误的
回复

使用道具 举报

结帖率:78% (18/23)
发表于 2025-9-22 08:14:47 | 显示全部楼层   浙江省嘉兴市
上午4小时,下午3小时,正常上班时间就是7小时,那可以算实际上班时间,去掉这7小时的就是上班时间。
回复

使用道具 举报

结帖率:90% (75/83)
 楼主| 发表于 2025-9-22 09:35:51 | 显示全部楼层   四川省绵阳市
走一回 发表于 2025-9-22 08:14
上午4小时,下午3小时,正常上班时间就是7小时,那可以算实际上班时间,去掉这7小时的就是上班时间。 ...

思路是这样,但是实际上班加班时间有交叉,代码不知道怎么写

点评

可以实现   江西省南昌市  发表于 2025-9-22 15:08
回复

使用道具 举报

结帖率:78% (18/23)
发表于 2025-9-22 12:02:48 | 显示全部楼层   浙江省嘉兴市
jiucai 发表于 2025-9-22 09:35
思路是这样,但是实际上班加班时间有交叉,代码不知道怎么写

在正常上班时间里的就算上班的,这跟交叉与否有什么关系,只要上足7小时,其余时间就算加班;或是先计算全部上班时间,比如5小时正常上班时间,再计算总的在岗时间是9小时的的话,那加班就是4小时。只要是在正常上班时间里的就上班。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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