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.")











Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: