专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VB Dotnet

vb.net 时间相减有关问题

发布时间:2011-06-23 16:01:52 文章来源:www.iduyao.cn 采编人员:星星草
vb.net 时间相减问题
VB.NET code
Private Function GetDoTime(ByVal Time1 As DateTime, ByVal Time2 As DateTime) As String
        Dim stime As DateTime
        If Time1 > Time2 Then
            stime = Time1
            Time1 = Time2
            Time2 = stime
        End If
        Dim secondvalue As Long = DateDiff("s", Time1, Time2)
        Dim dayvalue As Long = DateDiff("d", Time1, Time2)
        Dim hourvalue As Double = Fix((secondvalue - dayvalue * 24 * 3600) / 360)
        If hourvalue < 0 Then dayvalue = dayvalue - 1 : hourvalue = 24 + hourvalue
        Dim minitevalue As Double = Fix((secondvalue - dayvalue * 24 * 3600 - hourvalue * 3600) / 60)
        If minitevalue < 0 Then hourvalue = hourvalue - 1 : minitevalue = 60 + minitevalue
        Dim secvalue As Double = secondvalue - dayvalue * 24 * 3600 - hourvalue * 3600 - minitevalue * 60
        If secvalue < 0 Then minitevalue = minitevalue - 1 : secvalue = 60 + secvalue
        GetDoTime = dayvalue & "天" & hourvalue & "小时" & minitevalue & "分" & secvalue & "秒"
    End Function
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox(GetDoTime(Now, "2011-09-13 10:52:09"))
        Me.Dispose()
    End Sub



请帮一下谢谢
qq:2319246391

------解决方案--------------------
Private Function GetDoTime1(ByVal Time1 As DateTime, ByVal Time2 As DateTime) As String
Dim nTime1 As DateTime
Dim nTime2 As DateTime
If Time1 > Time2 Then
nTime2 = Time1
nTime1 = Time2
Else
nTime1 = Time1
nTime2 = Time2
End If
Dim SecondValue As Integer = DateDiff(DateInterval.Second, nTime1, nTime2)
Dim secvalue As Long = SecondValue Mod 60
SecondValue -= secvalue
Dim minitevalue As Long = (SecondValue Mod 3600) / 60
If minitevalue = 0 Then minitevalue = 60
SecondValue -= minitevalue * 60
Dim hourvalue As Long = (SecondValue Mod 3600 * 24) / 3600
If hourvalue = 0 Then hourvalue = 24
SecondValue -= hourvalue * 3600
Dim dayvalue As Long = SecondValue / (3600 * 24)
Return dayvalue & "天" & hourvalue & "小时" & minitevalue & "分" & secvalue & "秒"
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(GetDoTime1(Now, "2011-09-13 10:52:09"))
MsgBox(GetDoTime1("2011-09-13 10:52:09", Now))
Me.Close()
End Sub
------解决方案--------------------
是否是需要显示两个时间的比对,再显示相差几天 
如果 "1天 12小 30分钟 25秒"

如果是,现在的就能实现,有很多函数,

Private Sub dd(d1 As Date, d2 As Date)

Dim ts As TimeSpan = d2 - d1
Dim ob() As Object = New Object() {ts.TotalDays, ts.TotalHours, ts.TotalMinutes, ts.TotalSeconds}
Dim s As String = String.Format("{0}天 {1}小时 {2}分钟 {3}秒", ob)
MessageBox.Show(s)

End Sub
------解决方案--------------------
探讨

是否是需要显示两个时间的比对,再显示相差几天
如果 "1天 12小 30分钟 25秒"

如果是,现在的就能实现,有很多函数,

Private Sub dd(d1 As Date, d2 As Date)

Dim ts As TimeSpan = d2 - d1
Dim ob() As Object = New Object() {t……
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: