我想找到使用COBOL的两个时间戳之间的区别

时间:2010-07-13 20:30:44

标签: cobol

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

4 个答案:

答案 0 :(得分:1)

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

同样的指南 提供COBOL code 做你正在寻找的。关于此示例中您需要进行的唯一更改是时间戳的格式,如下所示:

MOVE "YYYYMMDDHHMISS99" TO Vstring-text of PICSTR.

您可以将秒数计算为天数,小时数,分钟数等 CEESECI--Convert seconds to integers 服务。同样,提供了特定的COBOL示例。

答案 1 :(得分:0)

最有可能格式化为:

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代码而被禁止使用。

HTH。

修改

Here您可以找到用于计算日期差异的HP COBOL程序。你只需添加(小时,分钟,秒)逻辑,非常容易。

答案 2 :(得分:0)

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

1)将日期戳转换为自任意过去日期(例如17-nov-1978)以来每年的秒数,与您比较它的日期/时间相同,在之间做一个简单的减法两个结果,然后将得到的秒数转换回增量时差,或

2)分别减去日期/时间的每个部分,记录每个月的天数和闰年(如果您希望它工作超过4年)。这个选项非常多毛,失败率非常高,所以我不推荐它。

答案 3 :(得分:0)

Cobol 85内置了日期功能,可以提供帮助。

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

COMPUTE DIFF = FOO2 - FOO.