Cobol - DayOfweek

 
Vista:

DayOfweek

Publicado por Juan (1 intervención) el 08/08/2001 20:46:56
Necesito saber como hacer un dateofweek(fecha x) en acucobol, porfavor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cálculo del día de la semana en ACUCOBOL

Publicado por Alejandro (300 intervenciones) el 04/09/2023 18:36:29
Para calcular el día de la semana a partir de una fecha en ACUCOBOL, generalmente puedes usar una fórmula que te permita determinarlo. La fórmula Zeller's Congruence es una de las fórmulas comunes que se utilizan para este propósito. Aquí hay un ejemplo de cómo podrías implementar esto en ACUCOBOL:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
IDENTIFICATION DIVISION.
PROGRAM-ID. CalcularDiaSemana.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Anio       PIC 9(4).
01 Mes        PIC 9(2).
01 Dia        PIC 9(2).
01 DiaSemana  PIC 9(1).
 
PROCEDURE DIVISION.
    ACCEPT Anio FROM DATE YYYYMMDD.
    ACCEPT Mes FROM DATE YYYYMMDD.
    ACCEPT Dia FROM DATE YYYYMMDD.
 
    COMPUTE DiaSemana = CalculaDiaSemana(Anio, Mes, Dia).
 
    DISPLAY 'El día de la semana es: ' DiaSemana.
 
    STOP RUN.
 
CalculaDiaSemana SECTION USING Anio Mes Dia RETURNING DiaSemana.
    LOCAL-CALLABLE SECTION.
    01 A       PIC 9(4).
    01 M       PIC 9(2).
    01 D       PIC 9(2).
    01 K       PIC 9(2).
    01 J       PIC 9(2).
    01 Century PIC 9(2).
 
    MOVE Anio TO A.
    MOVE Mes TO M.
    MOVE Dia TO D.
 
    IF M < 3 THEN
        SUBTRACT 1 FROM A
        ADD 12 TO M
    END-IF.
 
    COMPUTE K = A MOD 100.
    COMPUTE J = INT(A / 100).
 
    COMPUTE Century = (13 * (M + 1)) / 5;
    COMPUTE DiaSemana = (K + (K / 4) + (J / 4) - (2 * J) + D + Century) MOD 7.
 
    IF DiaSemana = 0 THEN
        MOVE 7 TO DiaSemana
    END-IF.
 
    ADD 1 TO DiaSemana.
 
    EXIT SECTION.
 
END PROGRAM CalcularDiaSemana.

En este código, se usa la fórmula Zeller's Congruence para calcular el día de la semana a partir de una fecha dada (Anio, Mes, Dia) y se almacena en la variable DiaSemana. Luego, se muestra el resultado en la pantalla.

Asegúrate de ajustar la entrada de fecha según tus necesidades (en este caso, se utiliza la entrada YYYYMMDD) y adapta el código según los requisitos de tu programa ACUCOBOL.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar