MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

How to get microsecond in cobol program(no DB2)

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Application Programming
View previous topic :: View next topic  
Author Message
vice_versa
Beginner


Joined: 04 Nov 2005
Posts: 14
Topics: 10

PostPosted: Fri May 30, 2008 12:32 pm    Post subject: How to get microsecond in cobol program(no DB2) Reply with quote

Hi all,
How to get microsecond(Like 23:10:10.0399919,no db2)?
any help will be apprieciated!
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12375
Topics: 75
Location: San Jose

PostPosted: Fri May 30, 2008 12:40 pm    Post subject: Reply with quote

vice_versa,

You can use Language environment call CEELOCT which returns the the current date with milliseconds

Check this link for detailed explanation with examples

http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/CEEA3130/3.5.44?

Kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
bauer
Intermediate


Joined: 10 Oct 2003
Posts: 315
Topics: 49
Location: Germany

PostPosted: Mon Jun 02, 2008 2:38 am    Post subject: Reply with quote

Or use

EXEC SQL SELECT CURRENT TIMESTAMP FROM SYSIBm.SYSDUMYM1
Back to top
View user's profile Send private message
CraigG
Intermediate


Joined: 02 May 2007
Posts: 202
Topics: 0
Location: Viginia, USA

PostPosted: Mon Jun 02, 2008 6:12 am    Post subject: Reply with quote

[quote="bauer"]Or use

EXEC SQL SELECT CURRENT TIMESTAMP FROM SYSIBm.SYSDUMYM1[/quote

Did you read the subject?
Back to top
View user's profile Send private message
vice_versa
Beginner


Joined: 04 Nov 2005
Posts: 14
Topics: 10

PostPosted: Mon Jun 02, 2008 9:19 am    Post subject: Reply with quote

Hi
None DB2 Eviroment.
Back to top
View user's profile Send private message
Terry_Heinze
Supermod


Joined: 31 May 2004
Posts: 391
Topics: 4
Location: Richfield, MN, USA

PostPosted: Mon Jun 02, 2008 9:55 am    Post subject: Reply with quote

If you need a "real" microsecond value, go with koluso's suggestion. If a "pseudo" value will suffice, like it did for me one time, use the hhmmss value from COBOL and suffix it with your own generated microsecond value.
_________________
....Terry
Back to top
View user's profile Send private message Send e-mail
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Thu Jun 05, 2008 11:31 am    Post subject: Reply with quote

The following will give you time upto microseconds :
Code:

TIMEMSEC RMODE ANY                                                             
TIMEMSEC AMODE ANY                                                             
TIMEMSEC CSECT                                                          00000270
*                                                                               
* Author: Nagesh Subrahmanyam .                                                 
*                                                                               
*This program will get the current date and time upto the level of             
*micro-seconds. They will be stored in packed-decimal format which             
*needs to be formatted in the calling program.                                 
*                                                                               
*COBOL calling format:                                                         
*                                                                               
*      Call 'TIMEMSEC' Using Current-Time End-Call .                           
*where,                                                                         
*      Current-Time is defined as X(12). This field must be redefined           
*      accordingly to get the correct format.                                   
*                                                                               
         BALR  R12,0                                                    00000300
         USING *,R12                   Establish addressability         00000300
         STM   R14,R12,12(R13)         Save the registers               00000280
         LA    R2,SAVEAREA             Locate new savearea                     
         ST    R13,4(,R2)              Set back pointer                         
         ST    R2,8(,R13)              Set forward pointer                     
         LR    R10,R1                  Save R1 before calling macro             
*                                                                               
TIMEMAC  DS    0H                                                               
         TIME  DEC,TIMEDATE,ZONE=LT,LINKAGE=SYSTEM,DATETYPE=YYYYMMDD           
         MVO   TIMEO,TIMEONLY          Move time and append sign nibble         
         MVO   DATEO,DATEONLY          Move date and append sign nibble         
         DS    0H                                                               
*                                                                               
         LR    R1,R10                  Re-load R1                               
         L     R1,0(,R1)               R1 points to passed arguement           
         MVC   0(L'TSTAMP,R1),TSTAMP   Arguement has Timestamp                 
*                                                                               
         L     R13,4(R2)               Find caller savearea             00000400
         LM    R14,R12,12(R13)         Restore registers                00000400
         XR    R15,R15                 Clear R15                        00000420
         BR    R14                     Goback                           00000420
*                                                                               
         DS    0F                                                               
SAVEAREA DS   18F                      Savearea                                 
*                                                                               
TIMEDATE DS   0XL16                    Time and date returned                   
TIMEONLY DS   XL06                     Time part only                           
         DS   XL02                                                             
DATEONLY DS   XL04                     Date part only                           
         DS   XL04                                                             
*                                                                               
TSTAMP   DS   0PL12                                                             
DATEO    DS   PL5                      0C CY YM MD DF                           
TIMEO    DS   PL7                      0H HM MS SS SS SS SF                     
*                                                                               
*Register equates                                                               
*                                                                               
R0       EQU   0                                                        00000900
R1       EQU   1                                                        00001000
R2       EQU   2                                                        00001100
R3       EQU   3                                                        00001200
R4       EQU   4                                                        00001300
R5       EQU   5                                                        00001400
R6       EQU   6                                                        00001500
R7       EQU   7                                                        00001600
R8       EQU   8                                                        00001700
R9       EQU   9                                                        00001800
R10      EQU   10                                                       00001900
R11      EQU   11                                                       00002000
R12      EQU   12                                                       00002100
R13      EQU   13                                                       00002200
R14      EQU   14                                                       00002300
R15      EQU   15                                                       00002400
*                                                                               
         END   TIMEMSEC                                                 00000470



Here is a COBOL example to call the above HLASM :
Code:

000100 IDENTIFICATION DIVISION .                                        00010000
000200 PROGRAM-ID.     TIMENOW .                                        00020000
000300 AUTHOR.         Nagesh Subrahmanyam .                            00030000
000400*                                                                 00040000
000800 DATA DIVISION.                                                   00080000
000900*                                                                 00090000
001000 WORKING-STORAGE SECTION.                                         00100000
001100 01 Misc.                                                         00110000
001200    05 ASM-Prog            Pic X(08)  Value 'TIMEMSEC' .          00120004
001300    05 Current-Time-Msecs  Pic X(12)  Value Zero  .               00130004
001400    05 Current-Time-R      Redefines  Current-Time-Msecs .        00140004
001500       10 Current-Time-Grp.                                       00150003
001600          15 Current-Date  Pic S9(09) Comp-3 .                    00160004
001710          15 Current-Time  Pic S9(13) Comp-3 .                    00171004
001720    05 Current-Date-Num    Pic  9(09) Value Zero .                00172004
001740    05 Current-Date-Num-R  Redefines Current-Date-Num .           00174004
001750       10 Current-Date-Num-Grp.                                   00175004
001760          15 Filler        Pic  X .                               00176004
001770          15 Date-CCYYY    Pic  X(04) .                           00177004
001780          15 Date-MM       Pic  X(02) .                           00178004
001790          15 Date-DD       Pic  X(02) .                           00179004
001791    05 Current-Time-Num    Pic  9(13) Value Zero .                00179104
001792    05 Current-Time-Num-R  Redefines Current-Time-Num .           00179204
001793       10 Current-Time-Num-Grp.                                   00179304
001794          15 Filler        Pic  X .                               00179404
001795          15 Time-HH       Pic  X(02) .                           00179504
001796          15 Time-MM       Pic  X(02) .                           00179604
001797          15 Time-SS       Pic  X(02) .                           00179704
001798          15 Time-musec    Pic  X(06) .                           00179804
001799    05 Current-Time-Stamp  Pic  X(26) Value Space .               00179904
001800*                                                                 00180000
001900 PROCEDURE DIVISION .                                             00190000
002000     Call Asm-Prog Using Current-Time-Msecs End-Call .            00200003
002400                                                                  00240000
002401     Move Current-Date to Current-Date-Num                        00240104
002402     Move Current-Time to Current-Time-Num                        00240204
002403     .                                                            00240304
002410     String Date-CCYYY  Delimited by Size                         00241004
002420            '-'         Delimited by Size                         00242004
002421            Date-MM     Delimited by Size                         00242104
002422            '-'         Delimited by Size                         00242204
002423            Date-DD     Delimited by Size                         00242304
002425            '-'         Delimited by Size                         00242504
002427            Time-HH     Delimited by Size                         00242704
002428            '.'         Delimited by Size                         00242804
002429            Time-MM     Delimited by Size                         00242904
002430            '.'         Delimited by Size                         00243004
002431            Time-SS     Delimited by Size                         00243104
002432            '.'         Delimited by Size                         00243204
002433            Time-musec  Delimited by Size                         00243304
002434     Into   Current-Time-Stamp .                                  00243404
002435                                                                  00243504
002440     Display 'Current Time Stamp : ' Current-Time-Stamp .         00244004
002450                                                                  00245004
002500     Stop run .                                                   00250000


_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Application Programming All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group