Foxtable(狐表)用户栏目专家坐堂 → IIF表达式


  共有2985人关注过本帖树形打印复制链接

主题:IIF表达式

帅哥哟,离线,有人找我吗?
michl
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:106 积分:1331 威望:0 精华:0 注册:2021/8/20 16:21:00
IIF表达式  发帖心情 Post By:2023/8/25 12:05:00 [只看该作者]

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)

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110560 积分:562690 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:106 积分:1331 威望:0 精华:0 注册:2021/8/20 16:21:00
  发帖心情 Post By:2023/8/25 12:21:00 [只看该作者]

明白了,谢谢

 回到顶部