以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  IIF表达式  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=187993)

--  作者:michl
--  发布时间:2023/8/25 12:05:00
--  IIF表达式
Dim y As Integer = Date.Today.Year
Dim m As Integer = 12 \'Date.Today.Month
Dim dt As Date
’dt = IIf(m = 12, New Date(y + 1, 1, 1), New Date(y, m + 1, 1))
上面IIf表达式为什么不能用,没看出和下面代码有啥区别啊
If m = 12 Then
    dt = New Date(y + 1, 1, 1)
Else
    dt = New Date(y, m + 1, 1)
End If 
Output.Show(dt)

--  作者:有点蓝
--  发布时间:2023/8/25 12:09:00
--  
IIf会同时执行【New Date(y + 1, 1, 1), New Date(y, m + 1, 1)】,而if只会执行符合条件的分支

再说上面的2种代码都不合理,要获取明年1月1日,应该这样

Dim y As Integer = Date.Today.Year
Dim dt As Date = New Date(y, 1, 1).addyears(1)
msgbox(dt)

要获取下个月应该这样
Dim dt As Date = New Date(Date.Today.YearDate.Today.month, 1).addmonths(1)
msgbox(dt)
[此贴子已经被作者于2023/8/25 12:10:22编辑过]

--  作者:michl
--  发布时间:2023/8/25 12:21:00
--  
明白了,谢谢