使用 MS WORD 的两个日期之间的月数差异

问题描述

我需要得到两个日期之间的差异,我希望它以月数(MS WORD)显示,我目前正在使用这个公式:

{QUOTE
{SET sy{ MERGEFIELD  CASS_CALculaTED_LAST_PMT_DATE \@ yyyy}}
{SET sm{ MERGEFIELD  CASS_CALculaTED_LAST_PMT_DATE \@ M}}
{SET sd{ MERGEFIELD  CASS_CALculaTED_LAST_PMT_DATE \@ d}}
{SET ey{ MERGEFIELD  LETTER_DATE \@ yyyy}}
{SET em{ MERGEFIELD  LETTER_DATE \@ M}}
{SET ed{ MERGEFIELD  LETTER_DATE \@ d}}
{SET md{=IF((em=2),28+(em=2)*((MOD(ey,4)=0)+(MOD(ey,400)=0)-(MOD(ey,100)=0)),31-((em=4)+(em=6)+(em=9)+(em=11)))}}
{Set Years{=ey-sy-(em<sm)-(em=sm)*(ed<sd)}}
{Set Months{=MOD(12+em-sm-(ed<sd),12) \# 0}}
{Set Days{=MOD(md+ed-sd,md) \# 0}}
"{Years} Year{IF{Years}= 1 "" s},{Months} Month{IF{Months}= 1 "" s},{Days} Day{IF{Days}= 1 "" s}."}  

现在我正在尝试计算 01.10.2020 和 02.02.2021 之间的差异。给出的结果是:0 年、0 个月、2 天。

能否请您告诉我如何调整它以使其正常工作,并且它只会以月为单位显示差异,而忽略了年和日。

谢谢!

解决方法

删除:

{SET md{=IF((em=2),28+(em=2)*((MOD(ey,4)=0)+(MOD(ey,400)=0)-(MOD(ey,100)=0)),31-((em=4)+(em=6)+(em=9)+(em=11)))}}

替换:

{Set Months{=MOD(12+em-sm-(ed<sd),12) \# 0}}
{Set Days{=MOD(md+ed-sd,md) \# 0}}
"{Years} Year{IF{Years}= 1 "" s},{Months} Month{IF{Months}= 1 "" s},{Days} Day{IF{Days}= 1 "" s}."}

与:

{Set Months{={=MOD(12+em-sm-(ed<sd),12)+Years*12} \# 0}}
"{Months} Month{IF{Months}= 1 "" s}"}
,

@macropod,请在此处查看我的结果:

126 – CASS_CALCULATED_LAST_PMT_DATE 和 LETTER_DATE 之间的天数差异

0 - CASS_CALCULATED_LAST_PMT_DATE 和 LETTER_DATE 之间的月差(原始公式)

0 个月(根据您的建议使用新公式)

2020 - CASS_CALCULATED_LAST_PMT_DATE @ yyyy

10 - CASS_CALCULATED_LAST_PMT_DATE @ M

1 - CASS_CALCULATED_LAST_PMT_DATE @ d

2021 - LETTER_DATE @ yyyy

2 - LETTER_DATE @ M

4 - LETTER_DATE @ d