Cobol en español
  Página de Inicio Recomiéndala Contáctame Usuarios en Linea
12
     Crea Una cuenta  
Video 1
Video 2
Video 3

Si te ha servido la web
o te han gustado los videos, colabora haciendo click en el botón.

MANUALES
TEMATICOS
BASES DE DATOS
COBOL / WINDOWS
COBOL / UNIX
HISTORIA /DOCS
 
BUSCADOR
PROGRAMANDO-Dos
TRUCOS
AÑO 2.000
TEORIA POWCOB-3
PROG. POWCOB-3
TEORIA POWCOB-5
PROG. POWCOB-5
OCX-ESCOBOL
RUTINAS/MANUALES
OCX / JUEGOS
HERRAMIENTAS
COMPILADORES
ENCUESTAS
ENLACES
FOROS
TOP 10

CHAT   Usuarios: 0
Trucos
TEMARIONúmeros Aleatorios
Sec. Escape a Impresoras
Imp. ¿Pantalla o Impresora?
Dibujar Cuadros o Líneas
Años Bisiestos
Ventana de Opciones
Campos Tipo Hora
Busqueda de Cadenas
Mandar un e-mail
Pequeño Editor Texto
Día de la Semana
Registros / Fichero
ListBox en modo caracter

Día de la Semana

(1225 palabras totales en este texto)
(17642 Lecturas)   Versión Imprimible



Hoy todos los compiladores tienen la opción de mostrar el día de la semana que corresponde a la fecha del sistema utilizando para ello el comando ACCEPT como vemos en los Manuales .

Pero que pasa si, ¿queremos saber el día de la semana de cualquier día de nuestro calendario ?.

Pues para ello vamos a utilizar una simple fórmula con la que sabremos cuantos días han transcurrido desde el teórico día primero de nuestra era. En el truco sobre los días bisiestos se explica como obtener claramente los días. Pero veamos en la práctica como conseguimos que la máquina nos indique si hoy es Lunes, Martes o Miércoles.

Partimos en ésta fórmula con la tabla de los días por meses rellena y además sabiendo si el año actual es bisiesto, ya sabéis que lo podéis encontrar en el truco de los días bisiestos.

...
WORKING-STORAGE SECTION.
01  DIA   PIC 99.
01  MES  PIC 99.
01  ANIO PIC 9999.
01  C4    PIC 9(4).
01  BISI  PIC 9(4).
01  BI100 PIC 9(4).
01  BI400 PIC 9(4).
01  TODIA  PIC 9(8).
01  MESES      PIC 99.
01  DIASEMANA PIC 9.
01  TABLADIAS.
     02  FILLER PIC X(30) VALUE "LUNES     MARTES    MIERCOLES ".
     02  FILLER PIC X(30) VALUE "JUEVES    VIERNES   SABADO     ".
     02  FILLER PIC X(10) VALUE "DOMINGO ".
01  TABLIDIAS REDEFINES TABLADIAS.
     02  ELDIA  PIC X(10)  OCCURS 7 TIMES.
...
PROCEDURE DIVISION.
CALCULODIA.
     COMPUTE C4 ROUNDED = ANIO - 1.
     COMPUTE BISI = C4 / 4.
     COMPUTE BI100 = C4 / 100.
     COMPUTE BI400 = C4 / 400.
  COMPUTE TODIA ROUNDED = ( 365 * C4 ) + BISI - BI100 + BI400.
(Con esto conseguimos averiguar los días transcurridos hasta el 31 de Diciembre del año anterior al que estemos. Estos dias se guardarán en la variable TODIA.).

     MOVE 0 TO MESES.
CALCULODIA1.
     ADD 1 TO MESES IF MESES > MES GO CALCULODIA2.
     COMPUTE TODIA = TODIA + TDIA (MESES).
     GO CALCULODIA1.
(Aqui sumamos los días de los meses transcurridos del año actual sin contar el actual.).

CALCULODIA2.
     COMPUTE TODIA = TODIA + DIA.
(Le sumamos los días del mes en curso y ya tenemos el número total de días desde el inicio de nuestro calendario).
     DIVIDE 7 INTO TODIA GIVING C4 REMAINDER DIASEMANA.
     IF DIASEMANA = 0 MOVE 7 TO DIASEMANA. 


Al llegar aquí el resto de la operación de dividir todos los días entre 7, porque 7 son los días de la semana, nos debe de dar un número entre 0 y 6 que corresponderá a cada uno de los días de la semana.

La última línea es para cambiar el valor que tiene el domingo que sería 0 por el 7 para que corresponda con los elementos de nuestra tabla de días, de tal manera que ahora solo nos quedaría poner:

     DISPLAY ELDIA (DIASEMANA) LINE 10 COL 10.

Y ahora, todo aquel que lo necesite que lo implemente, siempre queda bastante mejor presentar la fecha indicando el día de la semana al que corresponde.

   Inicio de Página   
Sitio desarrollado con PHP-Nuke. Todos los Derechos Reservados.
PHP-Nuke es un Software Libre realizado con licencia GNU/GPL.
Página creada en Junio de 1.998, con el proposito de difundir el lenguaje Cobol en nuestra lengua.
Andres Montes [98/11]