易表在线答疑技术与交流用户社区 → 请问如何计算出两个日期的月数间隔?


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

主题:请问如何计算出两个日期的月数间隔?

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


加好友 发短信
等级:论坛游民 帖子:42 积分:10 威望:0 精华:0 注册:2006/8/12 14:14:00
  发帖心情 Post By:2006/9/3 [显示全部帖子]

If([第2列] > [第1列] And Day([第2列]) > Day([第1列]),Year([第2列]) * 12 - Year([第1列]) * 12 + Month([第2列]) - Month([第1列]),If([第2列] > [第1列] And Day([第2列]) < Day([第1列]),Year([第2列]) * 12 - Year([第1列]) * 12 + Month([第2列]) - Month([第1列]) - 1,If([第2列] < [第1列] And Day([第2列]) > Day([第1列]),Year([第1列]) * 12 - Year([第2列]) * 12 + Month([第1列]) - Month([第2列]) - 1,Year([第1列]) * 12 - Year([第2列]) * 12 + Month([第1列]) - Month([第2列]))))

-=-=-=- 以下内容由 tslz2006年09月03日 00:04am 时添加 -=-=-=-
我这个公式最精确
说明:本公式计算中,不足一个月的不算
比如一个月又三天,算做一个月不是按两个月算的,如果想算做两个月将公式稍改下就可以了

-=-=-=- 以下内容由 tslz2006年09月03日 00:07am 时添加 -=-=-=-
用三楼的公式算20051201至20060302算得数为2 个月,这是错误的,大家看一下就知道,应该是3个月的

-=-=-=- 以下内容由 tslz2006年09月03日 00:14am 时添加 -=-=-=-
修改一下,公式的最后,有一点小错误应为
If([第2列] > [第1列] And Day([第2列]) > Day([第1列]),Year([第2列]) * 12 - Year([第1列]) * 12 + Month([第2列]) - Month([第1列]),If([第2列] > [第1列] And Day([第2列]) < Day([第1列]),Year([第2列]) * 12 - Year([第1列]) * 12 + Month([第2列]) - Month([第1列]) - 1,If([第2列] < [第1列] And Day([第2列]) > Day([第1列]),Year([第1列]) * 12 - Year([第2列]) * 12 + Month([第1列]) - Month([第2列]) - 1,Year([第2列]) * 12 - Year([第1列]) * 12 + Month([第2列]) - Month([第1列]))))

-=-=-=- 以下内容由 tslz2006年09月03日 00:24am 时添加 -=-=-=-
公式虽长了点,但比较好理解,也不会发生错误,二楼三楼的公式就会算错
比如20060102和20060303就会少算一个月

-=-=-=- 以下内容由 tslz2006年09月03日 01:07am 时添加 -=-=-=-
If([第2列] > [第1列] And Day([第2列]) >= Day([第1列]),Year([第2列]) * 12 - Year([第1列]) * 12 + Month([第2列]) - Month([第1列]),If([第2列] > [第1列] And Day([第2列]) < Day([第1列]),Year([第2列]) * 12 - Year([第1列]) * 12 + Month([第2列]) - Month([第1列]) - 1,If([第2列] < [第1列] And Day([第2列]) >= Day([第1列]),Year([第1列]) * 12 - Year([第2列]) * 12 + Month([第1列]) - Month([第2列]) - 1,Year([第1列]) * 12 - Year([第2列]) * 12 + Month([第1列]) - Month([第2列]))))

-=-=-=- 以下内容由 tslz2006年09月03日 01:12am 时添加 -=-=-=-
再修改一下应为
If([第2列] > [第1列] And Day([第2列]) >= Day([第1列]),Year([第2列]) * 12 - Year([第1列]) * 12 + Month([第2列]) - Month([第1列]),If([第2列] > [第1列] And Day([第2列]) < Day([第1列]),Year([第2列]) * 12 - Year([第1列]) * 12 + Month([第2列]) - Month([第1列]) - 1,If([第2列] < [第1列] And Day([第2列]) >= Day([第1列]),Year([第1列]) * 12 - Year([第2列]) * 12 + Month([第1列]) - Month([第2列]) - 1,Year([第1列]) * 12 - Year([第2列]) * 12 + Month([第1列]) - Month([第2列]))))

 回到顶部
帅哥哟,离线,有人找我吗?
tslz
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:42 积分:10 威望:0 精华:0 注册:2006/8/12 14:14:00
  发帖心情 Post By:2006/9/3 1:10:00 [显示全部帖子]

用6楼版主公式算20060104和20060302为2个月,实际为1个月,用我的公式就不会错

 回到顶部