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

如何计算两个日期的天数差?现有代码结果异常求修正

计算两个日期的天数差解决方案

原代码问题分析

你的代码存在两个关键错误:

  1. 已经通过select a.prdt :plannedDate从数据库获取了计划日期,但后续用未初始化的变量调用utc.to.date(...)重新赋值plannedDate,导致原本正确的计划日期被覆盖为无效值。
  2. 直接使用日期减法在部分跨年月场景下可能存在计算偏差,建议使用系统内置的日期差函数保证准确性。

正确的计算脚本

function extern void ext.curdate.calculate()
{
        extern domain tcdate        today, plannedDate
        long days_diff

        select a.prdt :plannedDate
        from tdsls400 a
        where a.orno = {:tdsls400.orno}
        selectdo
                today = date.num()
                // 用date.diff计算两个日期的天数差,date1 - date2的结果
                days_diff = date.diff(today, plannedDate)
                ext.curdate = days_diff
        endselect
}

替代方案(若系统不支持date.diff)

如果你的环境无法使用date.diff()函数,只需去掉覆盖plannedDate的错误代码,直接用日期减法即可:

function extern void ext.curdate.calculate()
{
        extern domain tcdate        today, plannedDate

        select a.prdt :plannedDate
        from tdsls400 a
        where a.orno = {:tdsls400.orno}
        selectdo
                today = date.num()
                ext.curdate = today - plannedDate
        endselect
}

内容的提问来源于stack exchange,提问作者Faridz Kurnia Chandra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 14:54:50