sábado, 24 de enero de 2009

Calculo del dia de la semana (programa)


DÍA DE LA SEMANA:


Si queremos saber que dia de la semana era el dia de un nacimiento cualquiera, utilizaremos la siguiente formula:


ds=resto de (Dia Juliano + 0.5)/7 + 1

Esto nos da un número entre 1 y 7 con la siguiente correspondencia:


1 ........ LUNES
2 ...... MARTES
3 MIERCOLES
4 ....... JUEVES
5 ...... VIERNES
6 ....... SÁBADO
7 ..... DOMINGO


Tambien podemos calcular esto de forma grafica.
Ahora redactaremos un pequeño programa en Basic para el calculo del Dia juliano y el dia de la semana con el ordenador:


cls
DATA 2305447.5 , 2341971.5 , 2378495.5 , 2415019.5 , 2451544.5 , 2488068.5
meses:
DATA Enero,0,Febrero,31,Marzo,59,Abril,90,Mayo,120,Junio,151
DATA Julio,181,Agosto,212,Septiembre,243,Octubre,273,Noviembre,304,Diciembre,334
dias:
DATA Lunes,Martes,Miercoles,Jueves,Viernes,Sabado,Domingo
d1$="\ \ #####.,##"
pi# = 4*atn(1)
ra# = 2*pi#/360
f$ = "14.06.1997"
dia = VAL(LEFT$(f$,2))
mes = VAL(MID$(f$,4,2))
ano = VAL(RIGHT$(f$,4))
FOR n= 16 TO INT(ano/100)
READ djc#
NEXT
RESTORE meses
FOR n=1 TO mes
READ mes$,djm
NEXT
a = VAL(RIGHT$(f$,2))
IF mes<3>
IF ano MOD 4 = 0 THEN bisi = 1
IF mes>2 THEN djm=djm + bisi
dj# = djc# + djf# + djm + dia
a = dj# + 0.5 - 2303000
a = 7*(a / 7 - INT(a / 7))
ds = a +1
RESTORE dias
FOR n=1 TO ds
READ ds$
NEXT
PRINT f$;" = ";dia;" : ";mes;" : ";ano
PRINT "DJc ";djc#;" Dia de la semana ";ds;ds$
djmdia = dj# - 2450449.5 + 1
PRINT djmdia
PRINT djm + dia

No hay comentarios:

Publicar un comentario