我做了一个程序是半点上传数据的那种,在考虑断电的情况下出现的问题或没有到半点时就退出了的情况。我把数据存入了数据库中。当从数据库中取出来的时间没有超过半小时那么用从数据库中取出的值进行累加。如何去判断存入的时间与现在的时间相对比不没有超过半小时了。如:2008-03-29 11:15:47 值:78现在是:2008-03-29 11:23:11 没有超过半点那么用78进行累加。如何判断??还有一个小时的如何做判断?关键在于如何判断之前的一个时间和现在的时间是否在同一个半小时内或同一个小时内。上面的那两个时间就是在同一个半小时内,如果是下面一种情况就不用考虑了;
如:2008-03-29 11:15:47 值:78
现在是:2008-03-29 11:45:47 这两个时间就在不在同一个小时内了。一小进的也如上面说的差不多。
请大家帮忙看看。如有程序代码最好,没有算法也行。
这是一个红外计数器计数管理软件。半点保存整点保存都搞定了。有人想要半点保存或整点保存的代码我可以给你们。
如:2008-03-29 11:15:47 值:78
现在是:2008-03-29 11:45:47 这两个时间就在不在同一个小时内了。一小进的也如上面说的差不多。
请大家帮忙看看。如有程序代码最好,没有算法也行。
这是一个红外计数器计数管理软件。半点保存整点保存都搞定了。有人想要半点保存或整点保存的代码我可以给你们。
解决方案 »
- 请教一个关于颜色识别的问题
- 自适应窗体
- 请教一下思路,关于筛选查询的思路!
- 如何用注册表或Setupfactory向程序文件夹和桌面添加快捷方式
- 请问关于chart图表相关的问题,高分相与,急!!!高手请进
- 字符串操作问题!
- 请问如何用INET发文件到EMIAL邮箱或者上传文件到网站里,谢谢!
- 如何把recordset中的内容生成一个新表?
- 散分
- 请问这句话要怎么理解?MAKE AND FUSING HALF-WORD ROM IMAGE WITH BYTE EEPROM/FLASH
- vb编写一个com组件将打印厂商的com组件封装起来然后用asp调用,不知道行吗!
- 一个 关于 String 的讨论
-(Hour(TimeValue("11:23:11")) * 60 + Minute(TimeValue("11:23:11")))>600
then
超过半点
end if
Dim date1 As Date, date2 As Date '这两个时间由你代吧,但应该使date2>date1,否则DateDiff("n", date1, date2)会小于0
date1 = CDate("3/30/2008 17:22:00 AM")
date2 = Now
intDiff = DateDiff("n", date1, date2)If intDiff <= 30 And Minute(date2) <= 30 Then
MsgBox intDiff & "分钟. 在同一半小时内,并且未过半点"
ElseIf intDiff <= 59 And Minute(date2) <= 30 Then
MsgBox intDiff & "分钟. 在同一小时内,并且未过半点"
ElseIf Minute(Now) > 30 Then
MsgBox intDiff & "分钟. 已过半点"
Else
MsgBox intDiff & "分钟. 不在同一小时或半小时内"
End If
Dim ServerTimes As String'数据库中最后存入数据库中的最后一条记录的时间
Case 1 '半小时保存一次
If (Mid(ServerTimes, 15, 2) = "00" And Right(ServerTimes, 2) = "00") Or (Mid(ServerTimes, 15, 2) = "30" And Right(ServerTimes, 2) = "00") Then '判断是否是半点保存的数据
Else
If (Mid(Now, 1, 10) = Mid(ServerTimes, 1, 10) And Mid(ServerTimes, 12, 2) = Mid(Now, 12, 2) And Mid(ServerTimes, 15, 2) < 30 And Mid(Now, 15, 2) < 30) Or (Mid(Now, 1, 10) = Mid(ServerTimes, 1, 10) And Mid(ServerTimes, 12, 2) = Mid(ServerTimes, 12, 2) And Mid(ServerTimes, 15, 2) > 30 And Mid(Now, 15, 2) And Right(ServerTimes, 2) < 59 And Mid(Now, 12, 2) > 30 And Mid(Now, 12, 2) < 59 And Right(Now, 2)) Then ''判断是否是在同一个时间内(同一半小时内)
If CountNum > AdoDs.Fields("Sy_Values").Value Then
Else
CountNum = AdoDs.Fields("Sy_Values").Value
AdoQs.Open "Update Sys_t_Values Set Sy_Flag='0' Where Sy_no='" & MachineNO & "'AND Sy_Savetime=#" & EndSaveTime & "#", Cnn, adOpenKeyset, adLockPessimistic
End If
Else
AdoQs.Open "Update Sys_t_Values Set Sy_True='1' Where Sy_no='" & MachineNO & "'AND Sy_Savetime=#" & EndSaveTime & "#", Cnn, adOpenKeyset, adLockPessimistic
CountNum = "0000"
End If
End If
Case 2 '一个小时保存一次
If Mid(ServerTimes, 15, 2) = "00" And Right(ServerTimes, 2) = "00" Then
Else
'If Mid(Now, 1, 10) = Mid(ServerTimes, 1, 10) And Mid(Now, 12, 2) = Mid(ServerTimes, 12, 2) Then '有问题
If (Mid(ServerTimes, 1, 10) = Mid(Now, 1, 10) And Mid(ServerTimes, 12, 2) = Mid(Now, 12, 2) And Mid(ServerTimes, 15, 2) < 59 And Mid(Now, 15, 2) < 59 And Right(ServerTimes, 2) < 59 And Right(Now, 2) < 59) Then
If CountNum > AdoDs.Fields("Sy_Values").Value Then
Else
CountNum = AdoDs.Fields("Sy_Values").Value
AdoQs.Open "Update Sys_t_Values Set Sy_Flag='0' Where Sy_no='" & MachineNO & "'AND Sy_Savetime=#" & EndSaveTime & "#", Cnn, adOpenKeyset, adLockPessimistic
End If
Else
AdoQs.Open "Update Sys_t_Values Set Sy_True='1' Where Sy_no='" & MachineNO & "'AND Sy_Savetime=#" & EndSaveTime & "#", Cnn, adOpenKeyset, adLockPessimistic
End If
End If
呵呵,你自已要求不就是这样吗?
你的代码:
If (Mid(Now, 1, 10) = Mid(ServerTimes, 1, 10)‘同一天中
And Mid(ServerTimes, 12, 2) = Mid(Now, 12, 2)’同一时中
And Mid(ServerTimes, 15, 2) < 30 And Mid(Now, 15, 2) < 30)‘最后保存和现在的分钟都小于30
Or
(Mid(Now, 1, 10) = Mid(ServerTimes, 1, 10)‘同一天中
And Mid(ServerTimes, 12, 2) = Mid(ServerTimes, 12, 2)’????有用吗,就该是And Mid(ServerTimes, 12, 2) = Mid(Now, 12, 2)吧
And Mid(ServerTimes, 15, 2) > 30 And Mid(Now, 15, 2)‘最后保存和现在的分钟都大于30,Mid(Now, 15, 2)‘???
And Right(ServerTimes, 2) < 59 And Mid(Now, 12, 2) > 30 And Mid(Now, 12, 2) < 59 And Right(Now, 2)) Then ''判断是否是在同一个时间内(同一半小时内)...与我的代码:Dim intDiff As Long
Dim date1 As Date, date2 As Date '这两个时间由你代吧,但应该使date2>date1,否则DateDiff("n", date1, date2)会小于0
date1 = CDate(ServerTimes)
date2 = Now
intDiff = DateDiff("n", date1, date2)If intDiff < 30 And Minute(date2) < 30 Then与这一句的效果有区别吗?
MsgBox intDiff & "分钟. 在同一半小时内,并且未过半点"
ElseIf intDiff < 59 And Minute(date2) < 30 Then
MsgBox intDiff & "分钟. 在同一小时内,并且未过半点"
ElseIf Minute(Now) >= 30 Then
MsgBox intDiff & "分钟. 已过半点"
Else
MsgBox intDiff & "分钟. 不在同一小时或半小时内"
End If