Ms word 使用MS WORD的两个日期之间的月差

Ms word 使用MS WORD的两个日期之间的月差,ms-word,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

我需要得到两个日期之间的差异,我希望它以月数(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}."}  
{QUOTE
{SET sy{MERGEFIELD CASS_computed_LAST_PMT_DATE\@yyyy}
{SET sm{MERGEFIELD CASS_computed_LAST_PMT_DATE\@M}
{SET sd{MERGEFIELD CASS_computed_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))}
{设置年份{=ey sy-(em删除:

{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@macropod),请在此处查看我的结果:

126–CASS\U计算的最后付款日期和信函日期之间的天数差

0-CASS\U计算的最后付款日期和信函日期之间的月差(或原始公式)

0个月(根据您的建议采用新配方)

2020年-CASS\U计算的最后付款日期@yyyy

10-卡斯计算的最后付款日期@M

1-CASS_计算的最后付款日期@d

2021年-信函日期@yyyy

2-字母_日期@M


4-LETTER_DATE@d

以某种方式“替换:”,在我的草稿中消失。已修复。@Macrood根据您的示例进行了更改,它似乎确实有效,但它返回了“0个月”的答案.你知道会有什么问题吗?当我用我的原始公式尝试时,它给出了0年0个月零2天的答案,基本上它只计算了天数的差异,不考虑年和月。“0年0个月零2天”是“0个月”…也就是说,对我来说,相同的开始和结束日期,返回“0年,4米”月,1天。'对于原始字段代码,这表明您在执行字段代码时存在问题。我添加了我的结果作为答案,因为那里的格式选项更好。日期字段正在被识别,因此我不确定问题出在哪里,我也有一个计算天数差异的工作公式,但月份是有限的没有正确显示。正如我所说,字段代码对我来说是正确的-没有修改和修改。我只能断定您对原始字段代码的实现是错误的。我建议您从我的教程(或)中复制原始字段代码并重新开始。请注意,您也可以插入{SET StartDate{MERGEFIELD CASS_computed_LAST_PMT_DATE}和{SET EndDate{MERGEFIELD LETTER_DATE}字段(在'QUOTE'之后)并避免重复的MERGEFIELD引用。
{Set Months{={=MOD(12+em-sm-(ed<sd),12)+Years*12} \# 0}}
"{Months} Month{IF{Months}= 1 "" s}"}