import calendar
def semanas_del_mes(año, mes):
print("Cuantas semanas tiene el mes.")
#cal = calendar.Calendar(firstweekday=0) # 0 es lunes
semanas = cal.monthdayscalendar(año, mes)
print("Numero de semanas: "+\
str(len(semanas)))
return semanas
def dividir_semanas_del_mes(año, mes):
print("Dividir semamas del mes.")
for i, semana in enumerate(semanas, start=1):
print(f"Semana {i}: {semana}")
def buscar_dia(matriz, elemento):
print("Buscar dia en las semanas")
for i, fila in enumerate(matriz):
for j, valor in enumerate(fila):
if valor == elemento:
return (i, j)
return None
def crear_calendario(año, mes):
print("Crear Calendario.")
c = calendar.TextCalendar(calendar.MONDAY)
print(c.formatmonth(año, mes))
def Crear_Matriz_con_los_dias_del_mes(año, mes):
print("Crear una matriz con los dias del mes.")
Matriz_de_dias_del_mes = []
for day in cal.itermonthdays(año, mes):
Matriz_de_dias_del_mes.append(day)
print(Matriz_de_dias_del_mes)
def imprimir_dias_de_la_semana():
print("Dias de la semana.")
dias_de_la_semana = []
for day in calendar.day_name:
dias_de_la_semana.append(day)
print(dias_de_la_semana)
# Ejemplo de uso
año = 2024
mes = 11
cal = calendar.Calendar(firstweekday=0) # 0 es lunes
#cal = calendar.LocaleTextCalendar(locale='es_MX.utf8')
#Crear Calendario e imprimirlo.
crear_calendario(año, mes)
print("")
#Imprime los dias de la semana.
imprimir_dias_de_la_semana()
print("")
#Crea una matriz con los dias del mes.
#Pone semanas completas.
Crear_Matriz_con_los_dias_del_mes(año, mes)
print("")
#Cuantas semanas tiene el mes.
semanas = semanas_del_mes(año, mes)
print("")
#Dividir semanas del mes.
dividir_semanas_del_mes(año, mes)
print("")
#Buscar un dia entre las semanas.
dia_a_buscar = 15
posicion = buscar_dia(semanas, dia_a_buscar)
if posicion:
print(f"Dia {dia_a_buscar} encontrado en la posición {posicion}.")
else:
print(f"Dia {dia_a_buscar} no encontrado en la matriz.")
print("")
#Cambiar primer dia de la semena de un calendario.
#Los valores MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, y SUNDAY
otrocalendar = calendar.TextCalendar(calendar.MONDAY)
print(otrocalendar.formatmonth(año, mes))
otrocalendar.setfirstweekday(calendar.SUNDAY)
print(otrocalendar.formatmonth(año, mes))
#Cambia el idioma a Mexico.
#cal_MX = calendar.LocaleTextCalendar(locale='es_MX.utf8')
#cal_MX = calendar.LocaleTextCalendar(locale=None)
#print(cal_MX.formatmonth(año, mes))
#Para buscar con el CMD de Windows
#systeminfo | findstr /B /C:"System Locale"
#Para PowerShell.
#Get-WinSystemLocale
#Saber si un año es bisiesto.
print("Saber si un año es bisiesto.")
año_bisiesto = 2024
mes_bisiesto = 2
calendario_bisiesto = calendar.TextCalendar(calendar.MONDAY)
print(calendario_bisiesto.formatmonth(año_bisiesto, mes_bisiesto))
print(calendar.isleap(año_bisiesto))
#Saber cuantos años bisiestos hay entre dos años.
año_inicial = 2000
año_final = 2028
print("Entre el "+str(año_inicial)+" y el "+str(año_final)+\
" hay "+ str(calendar.leapdays(año_inicial, año_final))+\
" años bisiestos.")
print("")
# Saber en que dia de la semana inicia un mes y cuantos dias tiene el mes.
print("Saber en que dia inicia el mes y cuantos dias tiene. ")
crear_calendario(año, mes)
dia_inicial, ultimo_dia_del_mes = calendar.monthrange(año, mes)
dias_de_la_semana = []
for day in calendar.day_name:
dias_de_la_semana.append(day)
print("El mes inicia en "+str(dias_de_la_semana[dia_inicial]))
print("El mes tiene "+str(ultimo_dia_del_mes)+" dias.")
To embed this project on your website, copy the following code and paste it into your website's HTML: