如何实现将时间累加

zzzz1324 2004-10-15 10:03:54
我现在做一套职工签到系统,现在不知道如何实现:每天一个人出去几次,如何将这个人的所有出去时间都累加起来。具体如何操作呢。谢谢了。
...全文
331 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
51365133 2004-10-20
  • 打赏
  • 举报
回复
Function Convtime(date1 As Date, date2 As Date) As String
'
'功能 : 计算二个时间的时间差
'
'参数 : date1 是较早的时间, Variant (Date)。
' date2 是较晚的时间, Variant (Date)。
'
'若要计算两个日期之时间差,计算顺序是从 date1 到 date2
'
'返回值 : 时间差的组合字串, 例如 2年21天13小时5分钟3秒
'
Dim wsecond As Long '总秒数 / 剩余秒数
Dim wminute As Long '总分钟数 / 剩余分钟数
Dim whour As Long '总时数 / 剩余时数
Dim wday As Long '总天数 / 剩余天数
Dim wyear As Long '总年数

wsecond = DateDiff("s", date1, date2) '总秒数
If wsecond > 60 Then
wminute = wsecond \ 60 '总分钟数
wsecond = wsecond Mod 60 '计算剩余秒数
End If
If wminute > 60 Then
whour = wminute \ 60 '总时数
wminute = wminute Mod 60 '计算剩余分钟数
End If
If whour > 24 Then
wday = whour \ 24 '总天数
whour = whour Mod 24 '计算剩余时数
End If
If wday > 365 Then
wyear = wday \ 365 '总年数
wday = wday Mod 365 '计算剩余天数
End If

'拼凑计算结果字串
If wyear > 0 Then Convtime = Convtime & wyear & "年"
If wday > 0 Then Convtime = Convtime & wday & "天"
If whour > 0 Then Convtime = Convtime & whour & "小时"
If wminute > 0 Then Convtime = Convtime & wminute & "分钟"
If wsecond > 0 Then Convtime = Convtime & wsecond & "秒"
End Function

里边改点就行了
51365133 2004-10-20
  • 打赏
  • 举报
回复
同意楼上
DateDiff("s", a1, a2) + DateDiff("s", b1, b2)
a达哥a 2004-10-19
  • 打赏
  • 举报
回复
午夜逛街的方法最实在, 最易懂
fly_higher 2004-10-19
  • 打赏
  • 举报
回复
楼上已经很多方法了!
junki 2004-10-19
  • 打赏
  • 举报
回复
不知道楼主这两个时间(出去时间,进来时间)是否有记录
如有的话,可以这样

Dim TimeOut As String'出去时刻表
Dim TimeIn As String'进来时刻表
Dim MinOut As Integer'出去的时间(3:25:00=3*60+25)
Dim MinIn As Integer'进来的时间(5:30:20=5*60+30)
Dim MinuteNum As Integer 'MinIn-MinOut

首先取得TimeOut 和 TimeIn的值

MinOut=ConVerSionMin(TimeOut,1)*60 + ConVerSionMin(TimeOut,2) 'ConVerSionMin根据冒号的位置取得小时数和分钟数
MinIn=ConVerSionMin(TimeIn,1)*60 + ConVerSionMin(TimeIn,2)
MinuteNum = MinIn-MinOut'得到出去一次所用的时间
常遇道 2004-10-19
  • 打赏
  • 举报
回复
Dim outTime, intTime, ID '一个员工出、进时间,ID号
sql = "select * from table1 datediff(hour,outtime,intime) as toTime"
sql = "select * from table2 where id='1'" '判断员工进出时间
sql = "insert into table2 toTime='" & 本次用的时间 & "'" '如果不出过插入时间
sql = "update tabel2 set toTime=上次时间+本次时间 wher id='1' " '如果出去过修改时间
sql = "select sum(totime) from table2 where id='1' " '统计时间
andyfr1210 2004-10-16
  • 打赏
  • 举报
回复
把对应 的时间用下datediff函数不就可以了吗?
jam021 2004-10-15
  • 打赏
  • 举报
回复
关注,帮你顶!
tztz520 2004-10-15
  • 打赏
  • 举报
回复
'这样可以得到
Private Sub Command3_Click()
Dim a1 As Date, a2 As Date, b1 As Date, b2 As Date
Dim timeCount As Date
Dim xx As Single, hh As Long, mm As Long, ss As Long
a1 = #1:06:28 PM# '第一次出去
a2 = #3:56:01 PM# '回来
b1 = #4:06:18 PM# '第二次出去
b2 = #5:12:01 PM# '回来

xx = DateDiff("s", a1, a2) + DateDiff("s", b1, b2)
hh = Int(xx / 3600)
mm = Int((xx - 3600 * hh) / 60)
ss = xx - hh * 3600 - mm * 60
timeCount = Format(hh & ":" & mm & ":" & ss, "hh:mm:ss")
MsgBox "出去时间总共为:" & timeCount
End Sub
victorycyz 2004-10-15
  • 打赏
  • 举报
回复
T (EmpID,OutTime,Intime) --员工ID,出去时间,进来时间

select EmpID,sum(datediff(hour,outtime,intime)) as TotalTime, count(*) as OutTimes
from T
group by EmpID
zzzz1324 2004-10-15
  • 打赏
  • 举报
回复
就是,一个人一天出去回来了,然后又出去了回来了。着不是两个时间段吗,想把这两个时间段都累加起来,计算出他总共出去的时间。如何实现。
starsoulxp 2004-10-15
  • 打赏
  • 举报
回复
把出去的时间累加起来?不明白?
zzzz1324 2004-10-15
  • 打赏
  • 举报
回复
怎么没有人回复呢
hanaichun 2004-10-15
  • 打赏
  • 举报
回复
关注,帮你顶!
aiur2000 2004-10-15
  • 打赏
  • 举报
回复
不如用本公司的门禁考勤系统吧,www.szoptec.com。呵呵,竟然来推销了,要是有人记录了时间,并手动输入到电脑中,上面各位已经解决了。
lyadlysysT 2004-10-15
  • 打赏
  • 举报
回复
在数据库中定义一个Varchar的字段进行存储出入时间
然后一天要出去很多次每次都以"|"分隔写入数据库
例如:第一次#1:06:28 PM#,第二次 #3:56:01 PM#
保存如数据中是“#1:06:28 PM#| #3:56:01 PM#|”
用的时候再把取出来进行计算
lyadlysysT 2004-10-15
  • 打赏
  • 举报
回复
在数据库中定义一个Varchar的字段进行存储出入事件
然后一天要出去很多次每次都以"|"分隔写入数据库
例如:第一次#1:06:28 PM#,第二次 #3:56:01 PM#
保存如数据中是“#1:06:28 PM#| #3:56:01 PM#|”
用的时候再把取出来进行计算
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境中完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程中的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧