以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口倒计时代码请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154151)

--  作者:昱飞哥
--  发布时间:2020/9/5 11:08:00
--  窗口倒计时代码请教
老师,请教一下:
我想把今日的倒计时、本月的倒计时、本年的倒计时分别显示在label2、label3、label4中,于是在窗口的timertick事件中写下如下代码:

Dim d As Date = Date.Today   \'获取今日的日期
Dim dt As Date =  #d 24:00:00#   \'获取今日24时整的日期与时间
Dim t As TimeSpan = dt - Date.Now      \'计算现在离今天的24时整还差多少时间
e.Form.Controls("Label3").Text = "剩余" & t.Days & "天" & t.Hours & "小时" & t.Minutes & "分" & t.Seconds & "秒"
\'上述代码是计算离今天结束还剩多少时间

Dim y1 As Integer = Date.Today.Year
Dim m1 As Integer = Date.Today.Month
Dim d1 As New Date(y1, m1, Date.DaysInMonth(y1, m1)) \'获取本月的最后一天
Dim dt1 As Date =  #d1 24:00:00#   \'获取今日24时整的日期与时间
Dim t1 As TimeSpan = dt1 - Date.Now      \'计算现在离本月最后一天的24时整还差多少时间
e.Form.Controls("Label3").Text = "剩余" & t1.Days & "天" & t1.Hours & "小时" & t1.Minutes & "分" & t1.Seconds & "秒"
\'上述代码是计算离本月结束还剩多少时间

Dim d2 As New Date(y1, 12, 31) \'获取今年的最后一天
Dim dt2 As Date =  #d2 24:00:00#   \'获取今日24时整的日期与时间
Dim t2 As TimeSpan = dt2 - Date.Now      \'计算现在离今年的最后一天的24时整还差多少时间
e.Form.Controls("Label3").Text = "剩余" & t1.Days & "天" & t1.Hours & "小时" & t1.Minutes & "分" & t1.Seconds & "秒"
\'上述代码是计算离今年结束还剩多少时间


红色的这几句错了,不知道怎么写,望指点

--  作者:有点蓝
--  发布时间:2020/9/5 11:22:00
--  
Dim dt As Date =  format(d,"yyyy-MM-dd 24:00:00")   \'获取今日24时整的日期与时间
--  作者:昱飞哥
--  发布时间:2020/9/5 11:32:00
--  
谢谢蓝老师
--  作者:昱飞哥
--  发布时间:2020/9/5 11:40:00
--  
报错:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:窗口,倒计时,TimerTick
详细错误信息:
从字符串“2020-09-05 24:00:00”到类型“Date”的转换无效。



老师,这是啥情况

--  作者:有点蓝
--  发布时间:2020/9/5 13:41:00
--  
0点吧,时间值没有24点。

如果是最后一秒。应该是Dim dt As Date =  format(d,"yyyy-MM-dd 23:59:59"),或者使用第2天的0点进行计算

--  作者:昱飞哥
--  发布时间:2020/9/5 14:11:00
--  
是的,修改之后可以了,谢谢老师