=DATE(YEAR(B2),MONTH(B2)+DAY(B2)>15+2,DAY(B2)) 2014/1/1 经过这个运算变成2013/12/1,到底是怎么运算的 5
1个回答
展开全部
很好解释啊
外面是date()函数
里面YEAR(B2)=2014,
DAY(B2)=1
MONTH(B2)+DAY(B2)>15+2
MONTH(B2)+DAY(B2)=1+1=2
2>17 如果为真返回为1,假则返回0,因此这里Month结果只可能为0(上个月的12)或1
因此Month=0
结果是2014/0/1
而根据定义没有零月的说法,因此会倒退到上一年,也可以说是转换,于是就成了2013/12/1,
如果仍不理解,你可以试试 =DATE(2014,13,1)
你会发现等于2015/1/1
外面是date()函数
里面YEAR(B2)=2014,
DAY(B2)=1
MONTH(B2)+DAY(B2)>15+2
MONTH(B2)+DAY(B2)=1+1=2
2>17 如果为真返回为1,假则返回0,因此这里Month结果只可能为0(上个月的12)或1
因此Month=0
结果是2014/0/1
而根据定义没有零月的说法,因此会倒退到上一年,也可以说是转换,于是就成了2013/12/1,
如果仍不理解,你可以试试 =DATE(2014,13,1)
你会发现等于2015/1/1
追问
比如说在单独使用day函数,day(b2)>15会返回false值。也就是是不是说只是在date函数中不满足条件返回的是0值?有没有别的函数也是这样,不满足条件返回0值
追答
额,这么给你说吧,这个其实是Boolean值,Boolean值有两个 值true和false,而在C语言等里面,有一条是非零为真,意思就是0代表false,其他的数表示为true。不过普遍的是0代表false,1代表true,至于其他函数,只要返回值为Boolean的,结果只能为0或1,比如这里用的 == != 等等运算符都是返回为Boolean值,只是自动转换为0和1罢了。并不是函数返回了true和false,而是整个表达式返回的是Boolean类型的而已,这里day()函数返回的还是表示天啊。
主要还是看是什么语言
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |