首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

MsgBox now()解决方法

2013-03-01 
MsgBox now()MsgBox now() - 2012-11-6 19:23:04 得到110.581874999996 这个数字是什么意思? 是分还是秒

MsgBox now()
MsgBox now() - '2012-11-6 19:23:04' 得到110.581874999996 这个数字是什么意思? 是分还是秒? 怎么才能判断? 如果是分或者秒? 怎么才能转换成容易识别的?

参考这是在VB里写的
[解决办法]
得到的是天,
你可以了解一下TimeSpan
[解决办法]
VB中字符串转换为时间不是CDate吗
[解决办法]


Module Module1

    Sub Main()
        Dim d1 As DateTime
        Dim d2 As DateTime
        d1 = Date.Now

        d2 = CDate("2012-11-6 19:23:04")
        Dim x As Double
        x = d1.Subtract(d2).TotalMinutes

    End Sub

End Module


[解决办法]

Module Module1

    Sub Main()
        Dim d1 As DateTime
        Dim d2 As DateTime
        Dim datestr As String = New String("2012-11-6 19:23:04")
        d1 = Date.Now

        d2 = CDate(datestr)
        Dim x As Double
        x = d1.Subtract(d2).TotalMinutes
        If (Now().Subtract(CDate(datestr)).TotalMinutes > 30) Then
            MsgBox("大于")
        End If

    End Sub

End Module


[解决办法]
引用:
If (now().Subtract(CDate(tmp1.Value)).TotalMinutes > 30) Then

这里tmp1.Value是2012-11-6 19:23:04

跟上面您写的不一样吗?我不知道该怎么改?

我那么些没报错啊,你自己新建一个项目再试试
[解决办法]

可以使用timespan得到时间差数值。
http://msdn.microsoft.com/zh-cn/library/system.timespan.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
http://www.blogjava.net/AndyZhang/archive/2012/05/02/377157.html

[解决办法]
引用:
新建一个bb.vbs,然后写如下内容,提示语句未结束

Module Module1
 
    Sub Main()
        Dim d1 As DateTime
        Dim d2 As DateTime
        Dim datestr As String = New String("2012-11-6 19:23:04")
……

在Main方法里写这段代码
 Dim d1 As DateTime
        Dim d2 As DateTime


        Dim datestr As String = New String("2012-11-6 19:23:04")
        d1 = Date.Now
 
        d2 = CDate(datestr)
        Dim x As Double
        x = d1.Subtract(d2).TotalMinutes
        If (Now().Subtract(CDate(datestr)).TotalMinutes > 30) Then
            MsgBox("大于")
        End If
[解决办法]
MsgBox now() - #2012-11-6 19:23:04#    '110.687037037038

MsgBox day(now()) - day(#2012-11-6 19:23:04#)    '19
[解决办法]

MsgBox now() - Cdate("2012-11-6 19:23:04")


这样就可以呀,这个可读性已经很好了,关键是你的需求是什么?要得到怎么样的格式?

就表示1天,110了,就是110多天,0.58几了,就是超过12小时了,小数乘24就可以当作小时来看,再乘60就是分,再乘60就是秒

110.581874999996 ==》110天
.581874999996 ×24=13.964999999904 ==》13小时
.964999999904 ×60=57.89999999424  ==》57分
.89999999424  ×60= 53.9999996544  ==》53秒
[解决办法]
除就可以了呀,30分钟就是 30/60=0.5小时

 now() - CDate(tmp1.Value) > 30 / 60 / 24


[解决办法]
就是110.581874999996 这个值怎么换算成分钟?

换算成分钟是乘

110.581874999996 × 24 × 60
[解决办法]
引用:
打印MsgBox now() - CDate(tmp1.Value)的结果是110.581874999996 类似这样的值

但我想要判断的是如果现在的时间大于tmp1.Value这个时间 30分钟的话,就执行Then下面的语句

问题是我怎么才能判断 now() - CDate(tmp1.Value)这个值是多少分钟? 就是110.581874999996 这个值怎么换算成分钟?

换算成天就是了啊,天、小时、分、秒换算
难道没学过数学???
[解决办法]
我上面的方法已经很明确了
[解决办法]
应该是以天为单位的时间序数。整数部分是天,小数部分是多出的小时、分、秒。
把小数部分乘以24,得到的整数是小时,剩余部分再乘以60是分钟,再剩余的乘以60是秒,再剩余的乘以1000是毫秒。

热点排行