Está en la página 1de 5

Modo 1

Class fecha():
def __init__(self,dia,mes,ano):
self.dia=0
def Imprimir(self):
print("Hoy es dia " + fecha1.diasem() +" %i de %s del año %i" %(s
elf.dia, fecha1.nombremes(),self.ano))
def nombremes(self):
nombremes=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Juli
o","Agosto","Septiembre","Octubre","Noviembre","Diciembre"]
return nombremes[self.mes-1]
def diasem(self):
a = (14 - self.mes) // 12
m = self.mes + 14 * a - 2
diasem=["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes"
,"Sábado"]
valor=(self.dia + self.ano + (self.ano//4) - (self.ano//100) + (s
elf.ano//400) + ((31 * m)//12)) % 7
return diasem[valor]
def setDia(self,dia):
if dia<1 or dia>31:
raise ValueError("Día del mes es incorrecto",-1)
else:
self.dia=dia
def getdia(self):
return self.dia
def setmes(self,mes):
if mes<1 or mes>12:
raise ValueError("Mes incorrecto",-1)
else:
self.mes=mes
def getmes(self):
return self.mes
def setano(self,ano):
if ano<2000 or ano>2020:
raise ValueError("El año está fuera de rango",-1)
else:
self.ano=ano
if self.Bisiesto()==True:
print("El año no es bisiesto")
else:
print("El año es bisiesto")
def getano(self):
return self.ano
def Bisiesto(self):
if ano % 4 == 0 :
if ano % 100 == 0:
if ano % 400 == 0:
return True
else:
return False
fecha1=fecha(18,10,2020)
error=-1
while error==-1:
dia=int(input("Dame un día: "))
try:
fecha1.setDia(dia)
error=1
except ValueError as errorexcept:
print(errorexcept.args[0])
error=errorexcept.args[1]
error=-1
while error==-1:
mes=int(input("Dame un mes: "))
try:
fecha1.setmes(mes)
error=1
except ValueError as errorexcept:
print(errorexcept.args[0])
error=errorexcept.args[1]
error=-1
while error==-1:
ano=int(input("Dame un año: "))
try:
fecha1.setano(ano)
error=1
except ValueError as errorexcept:
print(errorexcept.args[0])
error=errorexcept.args[1]
fecha1.Imprimir()

Modo 2
class Fecha():
def __init__(self):
self.dia = 0
self.mes = 0
self.ano = 0

def imprimir(self):
print(f"Esta es tu fecha: {self.dia}/{self.mes}/{self.ano}")

def devoluciones(self):
nombres=["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "
Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]
return nombres[self.mes-1]

def setDia(self,dia):
if dia<1 or dia >31:
raise ValueError("Día del mes incorrecto",-1)
else:
self.dia=dia

def setMes(self,mes):
if mes<1 or mes >12:
raise ValueError("mes incorrecto",-1)
else:
self.mes=mes

def setAno(self,ano):
self.ano=ano

fecha=Fecha()
error1=-1
error=-1
while error1==-1:
dia=int(input("¿Que dia es? "))
try:
fecha.setDia(dia)
error1=1
except ValueError as errorexcept:
print(errorexcept.args[0])
error=errorexcept.args[1]
while error==-1:
mes=int(input("¿En que mes estas? "))
try:
fecha.setMes(mes)
error=1
except ValueError as errorexcept:
print(errorexcept.args[0])
error=errorexcept.args[1]

ano=int(input("¿Año en el que vives? "))


fecha.setAno(ano)
fecha.imprimir()

if ano % 4 == 0:
if ano % 100 == 0:
if ano % 400 == 0:
print('El año es bisiesto')
else:
print('El año no es bisiesto')
else:
print('El año es bisiesto.')
else:
print('El año no es bisiesto.')

if ano < 1583:

print('Solo acepta fechas mayores a 1582')

else:

a = (14 - mes) // 12

y = ano - a

m = mes + 12 * a - 2

d = (dia + ano + (ano//4) - (ano//100) + (ano//400) + ((31 * m)//12)) %


7

if d == 0:

diaSemana = 'Domingo'

elif d == 1:

diaSemana = 'Lunes'

elif d == 2:

diaSemana = 'Martes'

elif d == 3:

diaSemana = 'Miercoles'

elif d == 4:

diaSemana = 'Jueves'

elif d == 5:

diaSemana = 'Viernes'
else:

diaSemana = 'Sabado'

print('Es %s %d de %s del %d' %(diaSemana,dia,fecha.devoluciones(),ano))

#Me faltaria lograr que diferenciase que febrero es el bisiesto y luego q


ue segun sea bisisesto o no cuente el dia a partir de ahi lo he intentado
mil veces y nada lo siento

También podría gustarte