Python: Adivina que día cayo……..

Leyendo el blog pythonr2 encontré un interesante post en el que publica un pequeño script para que día cayo una fecha determinada, bien les dejo el código para que lo prueben, le agregue un par de líneas para que lo prueben rápidamente:

import sys

def esBisiesto(yyyy):
    esDiv4 = yyyy%4==0
    esDiv100 = yyyy%100==0
    esDiv400 = yyyy%400==0
    if esDiv4 and esDiv400: return True
    if esDiv4 and esDiv100: return False
    if esDiv4: return True
    return False

def queDiaEs(dd,mm,yyyy):
    
    if mm > 12: return -1,"Mes invalido"
    if dd > 31: return -2,"Dia invalido"

    for m in  [2,4,6,9,11]: # meses con 30 dias y febrero que tiene 28/29 dias
        if (dd,mm) == (31,m): return -2,"Dia invalido"

    if (dd,mm)==(30,2):
        return -2,"Dia invalido"
    if (dd,mm)==(29,2) and not esBisiesto(yyyy):
        return -2,"Dia invalido"

    yy = yyyy%100
    meses = [0,3,3,6,1,4,6,2,5,0,3,5]
    dia = ["Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"]
    valorYY = (yy + (yy / 4))%7

    ajuste = [6,4,2,0][(yyyy/100)%4]

    if mm in (1,2) and esBisiesto(yyyy): ajuste -=1

    numDia = ((dd + meses[mm-1] + valorYY + ajuste) % 7)
    return numDia, dia[numDia]
dd, mm, yyyy = sys.argv[1], sys.argv[2], sys.argv[3]

print dd,"-", mm,"-", yyyy
print queDiaEs(int(dd),int(mm),int(yyyy))

Simplemente lo copian y guardan con un nombre cualquiera, por ejemplo adivina_dia.py y lo ejecutan desde una consola con un:

python adivina_dia.py dia mes año

Ejemplo:

python adivina_dia.py 10 11 2000

Para mas detalles visiten el blog de PythonR2 que tiene muy buenos ejemplos.

Anuncios

0 Responses to “Python: Adivina que día cayo……..”



  1. Dejar un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s





A %d blogueros les gusta esto: