You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在EmEditor中计算两个日期列之间的间隔天数

EmEditor计算两日期列间隔天数方法

适用场景:日期为日/月/年(dd/MM/yyyy)格式,A列为起始日期、B列为结束日期,需在C列输出相差天数。

方法1:宏脚本(兼容所有EmEditor版本,稳定性最高)

  • 先打开目标文件,确认列已被正确分隔识别(点击列头可选中整列即为正常识别),点击C列列头选中整列待填充区域。
  • 按快捷键Alt+F11调出宏编辑器,新建空白宏文件,粘贴以下代码:
document.selection.Replace("^.*$", function(match) {
    const colAVal = match.GetCell(1, eeCellIncludeNone);
    const colBVal = match.GetCell(2, eeCellIncludeNone);
    if (!colAVal || !colBVal) return "";
    // 解析dd/MM/yyyy格式日期
    const [dA, mA, yA] = colAVal.split("/").map(Number);
    const [dB, mB, yB] = colBVal.split("/").map(Number);
    const timeA = new Date(yA, mA - 1, dA).getTime();
    const timeB = new Date(yB, mB - 1, dB).getTime();
    // 计算间隔天数,取绝对值兼容B列日期早于A列的场景
    const dayDiff = Math.round(Math.abs((timeB - timeA) / 86400000));
    return `${dayDiff}天`;
}, eeReplaceAll | eeReplaceSelOnly | eeReplaceCellMode);
  • 按F5运行宏,C列会自动填充所有行的间隔结果,示例中A列25/11/2022、B列29/11/2022对应行将输出4天。

方法2:内置列计算(v22及以上版本可用,操作更快捷)

  • 右键点击C列列头,选择「插入列/计算列」选项。
  • 在弹出的表达式输入框中填入以下公式:
=abs(datediff("d", datevalue(cell(1), "dd/MM/yyyy"), datevalue(cell(2), "dd/MM/yyyy"))) & "天"
  • 勾选「应用到所有行」后点击确定,即可直接生成结果。

注意:如果你的实际日期格式不是日/月/年,只需对应修改代码里的日期解析逻辑、或是公式里的日期格式串即可,例如年/月/日格式就把格式串替换为yyyy/MM/dd。

内容的提问来源于stack exchange,提问作者Heisenberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 02:39:09