问题描述
我需要得到两个日期之间的差异,我希望它以月数(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