如何计算两个日期之间的天数?如果我有两个日期字段,均为 m/d/y 宽度 12 格式,如何获得天数差异? 是否有捷径可寻?
回复: 如何计算两个日期之间的天数?日期差异效果很好。回复: 如何计算两个日期之间的天数?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />尽管 JMP 有其优点,但 Excel 优于 JMP 的一个地方是数据转换简便。 (这是一个权衡:Excel 似乎充满了类似 AI 的功能,它会尝试猜测您想要什么,而 JMP 的行为更可预测。)日期转换就是一个很好的例子。 当我开始使用 JMP 时,我花了一段时间才意识到 JMP 识别的日期格式不仅仅是示例,而是它唯一理解的日期格式的枚举列表。 Excel 允许您使用 h、m、s、d、y 字符以及分隔符构建自定义日期输入格式,并将文本转换为内部时间戳格式。
回复: 如何计算两个日期之间的天数?斯摩尔2,
我不会说你的陈述是亵渎,但根据我的经验,JMP 在处理日期时间方面比 Excel 好几个数量级。 由于我们工作的性质,我们广泛处理计时数据。 与 Excel 不同,JMP 具有持续时间格式,这一事实对我们来说是天赐之物。 我已经记不清过去有多少次因为日期时间格式问题而不得不使用 Excel 重新计算,但是当我的分析团队开始使用 JMP 进行分析并了解 JMP 如何处理日期时间时,这些问题就消失了。
十多年来,我一直在与 Excel 中的日期时间数据作斗争,并且经常不得不求助于 VBA 脚本来克服 Excel 的缺点。 即使这样,仍然存在有人遇到格式问题的风险。 在 JMP 中,我从来不需要编写日期时间计算脚本,因为大多数事情都可以通过使用简单的公式和设置列的格式来处理,或者使用 JMP 为列公式提供的广泛的日期时间函数集来解决。 下面的屏幕截图显示了原始发布者想要使用本线程中已经提到的三种不同方法的内容,并且不需要任何脚本。

第一个差异使用一个简单的公式(日期 2 - 日期 1)/ 86400 来计算天数差异。 鉴于 JMP 将日期时间存储为从 1904 年 1 月 1 日凌晨 12:00:00 开始的秒数,因此获取天数就这么简单。 对于想要以十进制形式报告天数的任何部分的人来说,此方法非常有用。
第二个区别甚至更简单,因为它不需要知道一天的秒数。 使用的公式仅为“日期 2 - 日期 1”,并且该列的格式为持续时间 (:day:hr:m)。 使用此方法以时间格式报告天数,显示剩余时间显示为小时、分钟和秒。
最后一个方法使用日期差异函数并仅返回天数。 诚然,如果您从日期 2 中减去日期 1,Excel 默认会执行此操作,但 JMP 所牺牲的不仅仅是输出日期 2 - 日期 1 中的天数,这足以弥补 Excel 在日期时间计算方面的缺陷。
回复: 如何计算两个日期之间的天数?我发现在 Excel 中计算日期之间的数学然后将结果传输到 JMP 表中要容易得多。我知道这听起来像是亵渎,但这比尝试找出所需的脚本要容易得多、快捷得多。
回复: 如何计算两个日期之间的天数?古塔姆,
我的步行尝试给出了解决方案。 使用列公式并从第 1 列中减去第 2 列,然后设置第 3 列的格式以按天显示。

回复: 如何计算两个日期之间的天数?嗨古塔姆,
为此有一个指定的公式。它称为日期差,您可以在公式编辑器的“日期时间”功能下找到它。
以下内容来自帮助文件:
日期差异
返回两个日期时间值的差值。 间隔参数可以是秒、分、小时、日、周、月、季度、年。 对齐参数描述如下:
Start 用于计算间隔开始的次数。
实际用于计算整个间隔。
Fractional 用于计算小数间隔。
例如,以下公式返回207.890243055556 ,日期之间的天数:
日期差异(01Jan2010:00:00:00, 27Jul2010:21:21:57, "日", "小数");
以下公式返回207 ,日期之间的完整天数:
日期差异(01Jan2010:00:00:00, 27Jul2010:21:21:57, "日", "实际");
以下公式返回 9,即两次之间完成的小时数:
日期差异(01Jan2010:00:00:00, 01Jan2010:09:22:57, "小时", "实际");
以下公式返回 1,即两个时间之间新一小时开始的次数:
日期差异(31Dec2010:23:59:59, 01Jan2011:00:59:59, "小时", "开始");
或者,您可以运行以下脚本并注意最后一个命令以及第 3 列的公式。
New Table( "Untitled",
Add Rows( 1 ),
New Column( "Column 1",
Numeric,
Continuous,
Format( "m/d/y", 12 ),
Input Format( "m/d/y" ),
Set Values( [2900620800] )
),
New Column( "Column 2",
Numeric,
Continuous,
Format( "m/d/y", 12 ),
Input Format( "m/d/y" ),
Set Values( [2900966400] )
),
New Column( "Column 3",
Numeric,
Continuous,
Format( "Best", Use thousands separator( 0 ), 17 ),
Formula( Date Difference( :Column 1, :Column 2, "day", "actual" ) )
)
);
祝你好运!
回复: 如何计算两个日期之间的天数?存储日期值内部为从参考日期(1904 年 1 月 1 日)起经过的秒数。 因此,两个日期之间的差异天可以通过下式计算:
(:Date2 - :Date1) / (60 * 60 * 24)
还有一个功能日期差异()在 JMP 12 中(可能在早期版本中也存在,直到现在我才注意到)。 据我所知,它做同样的事情,但它有一些不错的选项(在脚本索引、帮助菜单中查找它们)。
Date Difference(:Date1, :Date2, "Day")
回复: 如何计算两个日期之间的天数?古塔姆,
谢谢你的提问!
要获取 JMP 中两个日期之间的天数差异(采用 D/M/Y 格式),您可以轻松执行以下操作:
最简单的方法:Delta(天)
步骤 1:在数据表中创建一个新列
步骤 2:用第二个日期减去第一个日期,然后将此除以 86,400
JMP 返回以秒为单位的日期差,因此 86,400 是一天中的总秒数,可将其转换为天数。
请参阅下面的公式。

AlternativeWay:Delta (D:H:M) 持续时间
步骤 1:在数据表的新列中创建公式
第 2 步:只需从第二个日期中减去第一个日期
步骤 3:在列属性中的格式下,从下拉列表中选择持续时间日:小时:分钟
这将返回天数的差异,加上任何剩余的小时和分钟。
公式和格式见下:

希望这可以帮助!
斯科特