Hola, yo uso este programita pero creo que en ILE-COBOL debe haber alguna función.

Slds,

Juan E. García

 

 

0009.90        IDENTIFICATION DIVISION.                                        

0011.00       *****************************************************************

0012.10       * DEVUELVE EL DIA DE LA SEMANA.                                   

0013.20       * LA FECHA SE PASA COMO PARAMETRO.                               

0015.40       * LAS VARIABLES A UTILIZAR SON:                                  

0017.60       * FECHA  DE 99999999.                                             

0018.70       * TIPO = 1 SI LA FECHA ESTA EN FORMATO DD/MM/AAAA.               

0019.80       * TIPO = 2 SI LA FECHA ESTA EN FORMATO AAAA/MM/DD.               

0020.90       * DIAN = 1=LUNES 2=MARTES 3=MIERCOELS.                           

0022.00       * DIAL = SABADO=SABADO DOMINGO=DOMINGO...                        

0023.10       *****************************************************************

0024.20        PROGRAM-ID. DIASEM.                                             

0025.30        AUTHOR. JEGS-99.                                                

0026.40        ENVIRONMENT DIVISION.                                           

0027.50        CONFIGURATION SECTION.                                          

0028.60        SOURCE-COMPUTER. IBM-AS400.                                     

0029.70        OBJECT-COMPUTER. IBM-AS400.                                     

0030.80        DATA DIVISION.                                                  

0120.40        WORKING-STORAGE SECTION.                                        

0122.60        01 FEC1.                                                        

0123.70           02 DD1 PIC 99.                                               

0125.90           02 MM1 PIC 99.                                               

0127.00           02 AA1 PIC 9999.                                             

0128.10        01 FEC2.                                                        

0131.40           02 AA2 PIC 9999.                                                                                                                              

0132.50           02 MM2 PIC 99.                                                

0133.60           02 DD2 PIC 99.                                               

0134.70        77  W-DIAJUL PIC 99999999.                                      

0139.10        LINKAGE SECTION.                                                 

0375.60        77  WFECHA  PIC 99999999.                                       

0376.70        77  WTIPO   PIC 9.                                              

0377.80        77  WDIAN   PIC 9.                                               

0378.90        77  WDIAL   PIC X(09).                                          

0381.10       ************************************************************     

0389.90        PROCEDURE DIVISION USING WFECHA WTIPO WDIAN WDIAL.              

0395.40        PRINCIPAL SECTION.                                              

0396.50        INICIO.                                                         

0402.00            IF WTIPO = 1                                                

0403.10               MOVE WFECHA TO FEC1                                      

0406.40              ELSE                                                      

0407.50               MOVE WFECHA TO FEC2                                      

0408.60               MOVE DD2 TO DD1 MOVE MM2 TO MM1 MOVE AA2 TO AA1.         

0408.61

0413.00       * EL METODO CONSISTE EN PASAR LA FECHA A DIAS JULIANOS,          

0414.10       * TENIENDO EN CUENTA LOS BISIESTOS, Y LUEGO DIVIDIR EL           

0415.20       * DIA JULIANO POR 7. EL RESTO ES EL DIA DE LA SEMANA.            

0416.30                                                                        

0418.50            COMPUTE W-DIAJUL = AA1 - 1.                                 

0419.60            COMPUTE W-DIAJUL = W-DIAJUL * 365.25.                       

0420.70       * AVERIGUO SI ES BISIESTO.                                       

0421.80            DIVIDE AA1 BY 4 GIVING AA1 REMAINDER AA1.                   

0422.90            IF MM1 > 1                     ADD 31 TO W-DIAJUL.          

0424.00            IF MM1 > 2  AND AA1 = 0        ADD 29 TO W-DIAJUL.          

0425.10            IF MM1 > 2  AND AA1 NOT = 0    ADD 28 TO W-DIAJUL.          

0426.20            IF MM1 > 3                     ADD 31 TO W-DIAJUL.          

0427.30            IF MM1 > 4                     ADD 30 TO W-DIAJUL.          

0428.40            IF MM1 > 5                     ADD 31 TO W-DIAJUL.          

0429.50            IF MM1 > 6                     ADD 30 TO W-DIAJUL.          

0430.60            IF MM1 > 7                     ADD 31 TO W-DIAJUL.          

0431.70            IF MM1 > 8                     ADD 31 TO W-DIAJUL.          

0432.80            IF MM1 > 9                     ADD 30 TO W-DIAJUL.          

0433.90            IF MM1 > 10                    ADD 31 TO W-DIAJUL.          

0426.20            IF MM1 > 3                     ADD 31 TO W-DIAJUL.          

0427.30            IF MM1 > 4                     ADD 30 TO W-DIAJUL.          

0428.40            IF MM1 > 5                     ADD 31 TO W-DIAJUL.          

0429.50            IF MM1 > 6                     ADD 30 TO W-DIAJUL.          

0430.60            IF MM1 > 7                     ADD 31 TO W-DIAJUL.          

0431.70            IF MM1 > 8                     ADD 31 TO W-DIAJUL.          

0432.80            IF MM1 > 9                     ADD 30 TO W-DIAJUL.          

0433.90            IF MM1 > 10                    ADD 31 TO W-DIAJUL.          

0435.00            IF MM1 > 11                    ADD 30 TO W-DIAJUL.          

0436.10            ADD DD1 TO W-DIAJUL.                                        

0437.20            DIVIDE W-DIAJUL BY 7 GIVING AA1 REMAINDER AA1.              

0439.40            IF AA1 = 0 MOVE "SABADO   " TO WDIAL MOVE 6 TO WDIAN.       

0440.50            IF AA1 = 1 MOVE "DOMINGO  " TO WDIAL MOVE 7 TO WDIAN.       

0441.60            IF AA1 = 2 MOVE "LUNES    " TO WDIAL MOVE 1 TO WDIAN.       

0442.70            IF AA1 = 3 MOVE "MARTES   " TO WDIAL MOVE 2 TO WDIAN.       

0443.80            IF AA1 = 4 MOVE "MIERCOLES" TO WDIAL MOVE 3 TO WDIAN.       

0444.90            IF AA1 = 5 MOVE "JUEVES   " TO WDIAL MOVE 4 TO WDIAN.       

0446.00            IF AA1 = 6 MOVE "VIERNES  " TO WDIAL MOVE 5 TO WDIAN.       

0449.30            GOBACK.                                                     

        ****************** Fin de datos ***************************************

 


De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de David
Enviado el: lunes, 17 de julio de 2006 13:55
Para: [email protected]
Asunto: Saber dia semana de una fecha

 

Tengo el problema siguiente necesito saber el día de la semana de una fecha dada si alguien tiene algo en COBOL o en CL seria de gran ayuda

 

Estoy con la versión 5.2 y no si la función dayofweek del SQL funciona

 

Alguien podría escribir la sentencia muchas gracias

 

Dpto.Informático

Foisa. SA

 

***********************************************************************
Este mensaje se dirige exclusivamente a su destinatario y puede
contener información confidencial sometida a secreto profesional o cuya divulgación esté prohibida en virtud de la legislación vigente.
Cualquier opinión en él contenida es exclusiva de su autor y no
representa necesariamente la opinión de la empresa.
Si ha recibido este mensaje por error, le rogamos nos lo comunique
inmediatamente por esta misma vía y proceda a su destrucción.

This message is intended exclusively for its addressee and may contain information that is CONFIDENTIAL and protected by professional privilege or whose spreading is prohibited by virtue of the in force legislation.
Any opinion there in contained is solely that of the author
and does not represent necessarily the opinion of the company. If this message has been received in error, please immediately notify us via e-mail and delete it.
***********************************************************************

Responder a