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


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

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

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


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
请问如何计算出两个日期的月数间隔?  发帖心情 Post By:2006/9/2 22:58:00 [只看该作者]

如题!
我有两个日期,一个为:2001-12-30;另一个为:2015-03-12,如何计算出这两个日期间隔多少个月呀?即用什么办法来计算日期A和日期B之间的间隔月数?
谢谢!

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


加好友 发短信
等级:超级版主 帖子:2062 积分:20 威望:0 精华:0 注册:2006/8/11 10:51:00
  发帖心情 Post By:2006/9/2 23:07:00 [只看该作者]

Round(DaysBtw([第一列],[第二列])/365 * 12,0)

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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2006/9/2 23:07:00 [只看该作者]

这样?

Int(DaysBtw([时间1],[时间2])/365.25*12)


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


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/9/2 23:28:00 [只看该作者]

谢谢呀!
CZY版主的公式计算时精度高一点!

 回到顶部
帅哥哟,离线,有人找我吗?
tslz
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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列]))))

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


加好友 发短信
等级:超级版主 帖子:8672 积分:1734 威望:0 精华:0 注册:2006/8/11 10:52:00
  发帖心情 Post By:2006/9/3 0:50:00 [只看该作者]

这样呢?
round(YearFrac([第一列],[第二列],1) * 12,0)

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


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

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

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


加好友 发短信
等级:超级版主 帖子:8672 积分:1734 威望:0 精华:0 注册:2006/8/11 10:52:00
  发帖心情 Post By:2006/9/3 1:17:00 [只看该作者]

参考一下format版主的大作:
http://bbs.egridsoft.com/dispbbs.asp?BoardID=1&ID=18496

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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2006/9/3 16:16:00 [只看该作者]

下面引用由smileboy2006/09/03 01:17am 发表的内容:
参考一下format版主的大作//bbs.egridsoft.com/dispbbs.asp?BoardID=1&ID=18496

这个作品我试了一下:20060226-20060228 结果计算为6天!各位可以试试。

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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2006/9/3 16:58:00 [只看该作者]

[这个贴子最后由czy在 2006/09/03 06:29pm 第 2 次编辑]

下面引用由tslz2006/09/03 01:10am 发表的内容:
用6楼版主公式算20060104和20060302为2个月,实际为1个月,用我的公式就不会错

这样呢?

Int((YearFrac([第一列],[第二列])*12))

Int((YearFrac([第一列],[第二列])*12)-0.001)


 回到顶部