datetime问题

landlordh 2004-08-03 02:14:41

dim t1 as datetime = now
'如何将t1的时间取出来,并且转成可以被case正确识别的格式
Select Case t1
Case #8:00:00 AM# To #11:59:59 PM#
'Return DTime.早
Case #1:00:00 PM# To #6:59:59 PM#
'Return DTime.中
Case #7:00:00 PM# To #9:59:59 PM#
'Return DTime.晚
Case Else
'Throw New Exception("不能获取该时间段的类别!")
End Select
...全文
180 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
scegg 2004-08-04
  • 打赏
  • 举报
回复
Time=timevalue(TimeString)
landlordh 2004-08-04
  • 打赏
  • 举报
回复
原来的问题是:http://community.csdn.net/Expert/topic/3155/3155210.xml?temp=.3011743
已经解决了,只是我想不仅hour,如果上班时间改成13:30:00,那么就不能匹配了
所以我想改进一下,让可以匹配到分钟

如果还不行,那么只能用datetime.tofiletime转成数字再用case了

各位,还有什么好的建议?
水如烟 2004-08-03
  • 打赏
  • 举报
回复
这样做好不好

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim d1 As DateTime = Date.Now
Dim d2 As DateTime = d1.AddSeconds(100)
Dim d3 As DateTime = d2.AddSeconds(100)
MsgBox(IsMyTime(d2, d1, d3))
End Sub
Private Function IsMyTime(ByVal NowTime As DateTime, ByVal FirstTime As DateTime, ByVal EndTime As DateTime) As Boolean
If FirstTime > EndTime Then
Throw New Exception("时间设置不当")
Return False
End If
Return (NowTime >= FirstTime) And (NowTime <= EndTime)
End Function
landlordh 2004-08-03
  • 打赏
  • 举报
回复
也許可以不用select case
datetime.equals
但不知如何用,沒有用過
dim t1 as datetime '它的值是不一定的,动态输入
'datetime1是cdate("08:00:00")
'datetime2是cdate("11:59:59")
If t1.Equals(datetime1, datetime2) Then
'do something
End If
'好像沒有達到效果,也就是說t1是9點(為datetime型),它不會do something

哪位仁兄有用過這個的,請指教!
landlordh 2004-08-03
  • 打赏
  • 举报
回复
這個時間段case條件,想讓它變成動態,不知如何搞定它
Case #8:00:00 AM# To #11:59:59 PM#
'这里的#...#里的内容想从dataset里得到结果中取出

試了幾次都不能成功,如何將取出的字符串變成case識別的類型(不知這是一種是什麼類型,算是date型嗎?)
landlordh 2004-08-03
  • 打赏
  • 举报
回复
自己找到了更好的辦法了,

謝謝各位!
iThinkPad 2004-08-03
  • 打赏
  • 举报
回复
Dim DtNow As DateTime
Select Case DtNow.TimeOfDay().ToString
Case #8:00:00 AM# To #11:59:59 AM#
Console.WriteLine("早")
Case #1:30:00 PM# To #6:59:59 PM#
Console.WriteLine("中")
Case #7:00:00 PM# To #9:59:59 PM#
Console.WriteLine("晚")
Case Else
Console.WriteLine("无法识别")
End Select
landlordh 2004-08-03
  • 打赏
  • 举报
回复
MonkeyGG(猴子)

因为我至少要精确到分,所以你的方法对我没有太大的用处,如果只是要精确到小时
我已经有了更好的方法去做了
dim t1 as datetime '它的值是不一定的,动态输入
'如何将t1的时间取出来,并且转成可以被case正确识别的格式
Select Case t1
Case #8:00:00 AM# To #11:59:59 PM#
'而且这里的#...#里的内容想从dataset里得到结果中取出部分字符串
'用cdate转换,
'Return DTime.早
Case #1:30:00 PM# To #6:59:59 PM#
'Return DTime.中
Case #7:00:00 PM# To #9:59:59 PM#
'Return DTime.晚
Case Else
'Throw New Exception("不能获取该时间段的类别!")
End Select
landlordh 2004-08-03
  • 打赏
  • 举报
回复
scegg(Silent)
那样的话,我相关的可能要改很多的东西
可有什么更好的办法?
iThinkPad 2004-08-03
  • 打赏
  • 举报
回复
使用DatePart
Dim DtNow As DateTime = DateTime.Now
Select Case DatePart(DateInterval.Hour, DtNow)
Case 8 To 12
Console.WriteLine("早")
Case 13 To 19
Console.WriteLine("中")
Case 19 To 21
Console.WriteLine("晚")
Case Else
Console.WriteLine("无法识别")
End Select
scegg 2004-08-03
  • 打赏
  • 举报
回复
如果是这样的要求,建议你换个东西,用Microsoft.VisualBasic.Timer,返回从午夜流逝的秒数。
lizheng197953 2004-08-03
  • 打赏
  • 举报
回复
format

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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