我想用COBOL找出两个时间戳之间的差异

我想用COBOL找出两个时间戳之间的差异,cobol,Cobol,我想使用COBOL查找两个时间戳之间的差异。 我的时间戳是16个字节,这里是一个时间戳的示例:2010060314314826 请提供示例代码,最可能的格式为: YYYY MM DD HH MM SS CC 在两个字段中移动时间戳,例如: 01 field-to-load. 03 year pic(9999). 03 month pic(99). 03 day pic(99). 03 hour pic(99). 03 min pic

我想使用COBOL查找两个时间戳之间的差异。 我的时间戳是16个字节,这里是一个时间戳的示例:2010060314314826
请提供示例代码

,最可能的格式为:

YYYY MM DD HH MM SS CC

在两个字段中移动时间戳,例如:

 01 field-to-load.
    03 year   pic(9999).
    03 month  pic(99).
    03 day    pic(99).
    03 hour   pic(99).
    03 min    pic(99).
    03 sec    pic(99).
    03 cents  pic(99).
并使用级别03执行日期/时间算法

如果时间戳不是显示类型数据,则可能需要进行上一次转换。如果需要更多详细信息,请发布时间戳字段的字段定义

我希望不会因为发布cobol代码而被禁止这么做

编辑
您可以找到一个用于计算日期差异的HP COBOL程序。您只需添加(小时、分钟、秒)逻辑,非常简单。

最可能的格式为:

YYYY MM DD HH MM SS CC

在两个字段中移动时间戳,例如:

 01 field-to-load.
    03 year   pic(9999).
    03 month  pic(99).
    03 day    pic(99).
    03 hour   pic(99).
    03 min    pic(99).
    03 sec    pic(99).
    03 cents  pic(99).
并使用级别03执行日期/时间算法

如果时间戳不是显示类型数据,则可能需要进行上一次转换。如果需要更多详细信息,请发布时间戳字段的字段定义

我希望不会因为发布cobol代码而被禁止这么做

编辑
您可以找到一个用于计算日期差异的HP COBOL程序。您只需添加(小时、分钟、秒)逻辑,非常简单。

除非您的Cobol版本具有日期/时间数学,否则您有两种选择:

1) 将日期戳转换为自某个任意过去日期(例如,1978年11月17日)起每年的秒数,对要比较的日期/时间执行相同的操作,在两个结果之间执行简单的减法,然后将结果秒数转换回增量时差,或


2) 分别减去日期/时间的每一部分,计算每个月的天数和闰年(如果您希望它工作4年以上)。此选项非常复杂,失败率非常高,因此我不推荐使用。

除非您的Cobol版本具有日期/时间数学,否则您有两种选择:

1) 将日期戳转换为自某个任意过去日期(例如,1978年11月17日)起每年的秒数,对要比较的日期/时间执行相同的操作,在两个结果之间执行简单的减法,然后将结果秒数转换回增量时差,或


2) 分别减去日期/时间的每一部分,计算每个月的天数和闰年(如果您希望它工作4年以上)。此选项非常复杂,故障率非常高,因此我不推荐使用。

如果您在支持LE的IBM大型机环境中工作,请尝试查找: . 使用此例程,您可以将每个时间戳转换为Lilian秒,然后从中减去一个 另一个以秒为单位给出结果

同样的指南 提供 做你想做的事。在本例中,您只需对时间戳的格式进行如下更改:

MOVE "YYYYMMDDHHMISS99" TO Vstring-text of PICSTR.
您可以使用将秒数转换为天数、小时数、分钟数等 这个
服务同样,还提供了特定的COBOL示例。

如果您在支持LE的IBM大型机环境中工作,请尝试查找: . 使用此例程,您可以将每个时间戳转换为Lilian秒,然后从中减去一个 另一个以秒为单位给出结果

同样的指南 提供 做你想做的事。在本例中,您只需对时间戳的格式进行如下更改:

MOVE "YYYYMMDDHHMISS99" TO Vstring-text of PICSTR.
您可以使用将秒数转换为天数、小时数、分钟数等 这个
服务同样,还提供了特定的COBOL示例。

COBOL85具有内置的日期函数,这将有所帮助

COMPUTE FOO = FUNCTION INTEGER-OF-DATE(YYYYMMDD).
COMPUTE FOO2 = FUNCTION INTEGER-OF-DATE(DATEVAR).

COMPUTE DIFF = FOO2 - FOO.

COBOL85具有内置的日期函数,这将有所帮助

COMPUTE FOO = FUNCTION INTEGER-OF-DATE(YYYYMMDD).
COMPUTE FOO2 = FUNCTION INTEGER-OF-DATE(DATEVAR).

COMPUTE DIFF = FOO2 - FOO.

你正在使用哪种COBOL。什么是操作环境?您正在使用哪种COBOL。什么是操作环境?这些函数处理日期,而不是问题中的时间戳。这些函数处理日期,而不是问题中的时间戳。