Cobol en español
  Página de Inicio Recomiéndala Contáctame Usuarios en Linea
22
     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

Años Bisiestos

(420 palabras totales en este texto)
(16278 Lecturas)   Versión Imprimible



El que existan años bisiestos, es para absorber la diferencia entre el año solar (algo mas de 365,25 días) y el año de calendario (365) días. La explicación correcta que se adoptó en la reforma de Gregorio XIII en el año 1583, indica que:

Serán años bisiestos, todos aquellos que sean múltiplos de cuatro, excepto los que simultáneamente sean múltiplos de cien, salvo que a su vez lo sean de cuatrocientos.

Esto significa que desde el año 1.600 no se había dado, que un cambio de centuria coincidiera con un año bisiesto y, por supuesto, informaticamente, es la primera vez que sucede algo así.

Por lo tanto el año 2.000 será bisiesto, pero el 2.100, 2.200 y 2.300 no lo serán, claro que para entonces....

Si lo que queremos es determinar cuantos días va a tener el mes de Febrero del año sobre el que estamos trabajando, una manera de hacerlo es la siguiente:

Nos definimos una tabla con los valores de los días por defecto.

...
WORKING-STORAGE SECTION.
01  TABLADIAS.
     02  FILLER PIC X(24) VALUE "310031303130313130313031".
01  DIASTABLA REDEFINES TABLADIAS.
     02  ELEDIA PIC 99 OCCURS 12 TIMES.
01  RESULTADO  PIC 9(6).
01  RESTO         PIC 9(6).
...


Después, justo al entrar en la Procedure ejecutamos la siguiente rutina:

PROCEDURE DIVISION.
BISIESTO.
    DIVIDE 4 INTO
(el_año) GIVING RESULTADO REMAINDER RESTO.
    IF RESTO NOT = 0 GO NOBIS.
 (Si no es múltiplo de 4, no es bisiesto seguro, por lo tanto nos vamos).

    DIVIDE 100 INTO (el_año) GIVING RESULTADO REMAINDER RESTO.
    IF RESTO NOT = 0 GO BIS 

(Llegados aquí, si no es múltiplo de 100 seguro que es bisiesto)


        ELSE
    DIVIDE 400 INTO
(el_año) GIVING RESULTADO REMAINDER RESTO
    IF RESTO = 0 GO BIS ELSE GO NOBIS.
 
(Si es múltiplo de 400 es bisiesto, sino lo es, no es bisiesto).
    GO EMPEZAR.
BIS.
(Si es bisiesto, movemos 29 al elemento 2 que corresponde a Febrero y seguimos).
    MOVE 29 TO ELEDIA (2).
    GO EMPEZAR.
NOBIS.

(Si no es bisiesto, movemos 28 al elemento 2 que corresponde a Febrero).

    MOVE 28 TO ELEDIA (2).
EMPEZAR.
...

De ésta forma nos aseguraremos que el valor de la tabla que contiene los días de cada mes está correctamente, asignándole a Febrero los que realmente le corresponden según sea bisiesto o no.

   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]