| View previous topic :: View next topic | 
	
	
		| Author | Message | 
	
		| DHL_MF_INFY Beginner
 
 
 Joined: 10 Aug 2005
 Posts: 11
 Topics: 7
 
 
 | 
			
				|  Posted: Mon Sep 26, 2005 5:49 am    Post subject: Is there any utility available to add time in cobol? |   |  
				| 
 |  
				| hi, I want to add a constant parameter i.e. some hours, in the input date and time to get a new date and time in a batch program. Is there any utility available to achieve the same which can be used in a cobol program? [/quote]
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| vkphani Intermediate
 
  
 Joined: 05 Sep 2003
 Posts: 483
 Topics: 48
 
 
 | 
			
				|  Posted: Mon Sep 26, 2005 6:15 am    Post subject: |   |  
				| 
 |  
				| First of all let us know about the RECFM and LRECL of your file and the hours format, number of digits, position from which you want to add etc. 
 I assume that your file is of length 80 and format is FB. The number of digits of hours which you want to add is 2 and the position is from 9 and the hours you want to add is 24.
 
 The below sort card will add the characters 24 from 9th position(9th and 10th positions will be occupied).
 Rest of the data will be copied as it is.
 
 //SYSIN DD *
 OPTION COPY
 OUTREC FIELDS=(1:1,8,9:C'24',11:11,80)
 /*
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Phantom Data Mgmt Moderator
 
  
 
 Joined: 07 Jan 2003
 Posts: 1056
 Topics: 91
 Location: The Blue Planet
 
 | 
			
				|  Posted: Mon Sep 26, 2005 6:39 am    Post subject: |   |  
				| 
 |  
				| vkphani, 
 What I understand from DHL_MF_INFY's note is: he wants add some value 'x' to the date & time field.
 
 for example, if my input file contains the following "09-26-2005-23.55.00.000000" then If I add 10 minutes to this, the new date-time value will be "09-27-2006-00.05.00.000000".  But your code will concatenate '24' to the field thereby increasing the length.
 
 DHL_MF_INFY,  Let me know if I am wrong.  If this is the case, why don't you code the logic to add the hours/minutes in the COBOL program directly.  If you are going to add just the hours, then it will become a bit easy.
 
 I am not sure if Language environment has an option to add date & time.  I will have to find out.
 
 Thanks,
 Phantom
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| vkphani Intermediate
 
  
 Joined: 05 Sep 2003
 Posts: 483
 Topics: 48
 
 
 | 
			
				|  Posted: Mon Sep 26, 2005 6:42 am    Post subject: |   |  
				| 
 |  
				| Hi Phantom, 
 You are correct. But the full info about the requirement is not given.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Phantom Data Mgmt Moderator
 
  
 
 Joined: 07 Jan 2003
 Posts: 1056
 Topics: 91
 Location: The Blue Planet
 
 | 
			
				|  Posted: Mon Sep 26, 2005 6:53 am    Post subject: |   |  
				| 
 |  
				| I agree with vkphani. 
 DHL_MF_INFY,
 
 When you post a question, please make sure you provide the following information, so that we can get back with the accruate solutions on time.
 
 1.  RECFM
 2.  LRECL
 3.  Sample input
 4.  Sample output.
 
 And above all, please utilize the search facility provided to you to see if similar questions are already posted.  Most of them might have already been answered.  This will cut down your turn-around time.
 
 Thanks,
 Phantom
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| DHL_MF_INFY Beginner
 
 
 Joined: 10 Aug 2005
 Posts: 11
 Topics: 7
 
 
 | 
			
				|  Posted: Mon Sep 26, 2005 6:54 am    Post subject: |   |  
				| 
 |  
				| Hi Phantom, You got the point right. If at all I decide to code the same then I need to take care of things like Leap year and some other things into consideration like month change, year change etc. So just wanted to avoid cumbersome coding
   
 Thanks and Regards
 DHL_MF_INFY
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| DHL_MF_INFY Beginner
 
 
 Joined: 10 Aug 2005
 Posts: 11
 Topics: 7
 
 
 | 
			
				|  Posted: Mon Sep 26, 2005 7:07 am    Post subject: |   |  
				| 
 |  
				| Well an apology for not giving the complete information. 
 The needed information is as below.
 
 RECFM = FB
 LRECL = 500
 DSORG = PS
 Input Date and Time format is CCYYMMDD and HHMM
 
 Hope this is sufficient.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| kolusu Site Admin
 
  
 
 Joined: 26 Nov 2002
 Posts: 12394
 Topics: 75
 Location: San Jose
 
 | 
			
				|  Posted: Mon Sep 26, 2005 8:01 am    Post subject: |   |  
				| 
 |  
				| DHL_MF_INFY, 
 You can use the language environment calls "ceesecs" and "ceedatm" to acheive the desired results. You first need to convert the date-time to seconds and then add hours in seconds ex: 1 HOUR =(60 * 60 = 3600 SECONDS) . Now use CEEDATM to convert the second back to the normal character date-time format.
 
 Try this code.
 
 
  	  | Code: |  	  | 01 WS-SECONDS            COMP-2.
 01 WS-OLD-TIMESTAMP      PIC X(16).
 01 WS-PICSTR.
 02 WS-LEN             PIC S9(04) COMP.
 02 WS-OUT-TEXT.
 03 WS-OUT-STR      PIC X
 OCCURS 0 TO 256 TIMES
 DEPENDING ON WS-LEN.
 
 01 WS-NEW-TIMESTAMP      PIC X(80).
 01 WS-FORMAT             PIC X(16).
 
 01  WS-FC-CODE.
 05 FC-SEVERITY              PIC S9(4) COMP.
 05 FC-MESSAGE               PIC S9(4) COMP.
 05 FILLER                   PIC X(08).
 
 PROCEDURE DIVISION.
 
 MOVE '2005-09-26-23.35' TO WS-OLD-TIMESTAMP
 MOVE 'YYYY-MM-DD-HH.MI' TO WS-FORMAT
 
 CALL 'CEESECS' USING WS-OLD-TIMESTAMP,
 WS-FORMAT,
 WS-SECONDS,
 WS-FC-CODE
 
 IF FC-SEVERITY = 00
 DISPLAY 'THE DATE IN SECONDS IS : ' WS-SECONDS
 ADD +3600 TO WS-SECONDS
 MOVE +16 TO WS-LEN
 MOVE 'YYYY-MM-DD-HH.MI' TO WS-OUT-TEXT
 
 CALL 'CEEDATM' USING WS-SECONDS,
 WS-PICSTR,
 WS-NEW-TIMESTAMP,
 WS-FC-CODE
 
 IF FC-SEVERITY = 00
 DISPLAY 'THE NEW TIMESTAMP IS : ' WS-NEW-TIMESTAMP
 ELSE
 DISPLAY 'THE CEEDATM CALL FAILED WITH : ' FC-SEVERITY
 END-IF
 ELSE
 DISPLAY 'THE CEESECS CALL FAILED WITH : ' FC-SEVERITY
 END-IF
 
 | 
 
 Hope this helps...
 
 Cheers
 
 Kolusu
 _________________
 Kolusu
 www.linkedin.com/in/kolusu
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Phantom Data Mgmt Moderator
 
  
 
 Joined: 07 Jan 2003
 Posts: 1056
 Topics: 91
 Location: The Blue Planet
 
 | 
			
				|  Posted: Mon Sep 26, 2005 8:15 am    Post subject: |   |  
				| 
 |  
				| I don't know how I missed this.....We have already discussed this in the "Mainframe Challenge" Thread.  I vaguely remembered that it is possible with LE, but didn't try to search here.   
 http://www.mvsforums.com/helpboards/viewtopic.php?t=2261
 
 Thanks,
 Phantom
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		|  | 
	
		|  |