Introducci贸n al m贸dulo de calendario de Python

    Introducci贸n

    Python tiene un m贸dulo incorporado llamado Calendar que contiene clases y funciones 煤tiles para admitir una variedad de operaciones de calendario. Por defecto, el Calendar El m贸dulo sigue el calendario gregoriano, donde el lunes es el primer d铆a (0) de la semana y el domingo es el 煤ltimo d铆a de la semana (6).

    En Python, fecha y hora y hora Los m贸dulos tambi茅n proporcionan funcionalidades de bajo nivel relacionadas con el calendario. Adem谩s de estos m贸dulos, el Calendar El m贸dulo proporciona funciones esenciales relacionadas con la visualizaci贸n y manipulaci贸n de calendarios.

    Para imprimir y manipular calendarios, el Calendar El m贸dulo tiene 3 clases importantes: Calendar, TextCalendary HTMLCalendar. En este art铆culo, veremos c贸mo estas clases pueden ayudar a implementar una variedad de funciones relacionadas con el calendario.

    Funcionalidades del m贸dulo Calendario

    Usar el Calendar m贸dulo, primero necesitamos importar el m贸dulo usando:

    import calendar
    

    Echemos un vistazo a la lista de funciones 煤tiles en este m贸dulo.

    Impresi贸n de calendario para un mes espec铆fico

    Podemos imprimir el calendario para un mes espec铆fico, usando la siguiente funci贸n:

    calendar.month(yyyy, m, w, l)
    

    Los argumentos pasados 鈥嬧媋 esta funci贸n son el a帽o (yyyy), mes (m), ancho de columna de fecha (w) y el n煤mero de l铆neas por semana (l), respectivamente. Por ejemplo, usemos esta funci贸n para imprimir el calendario de marzo de 2019:

    print ("Calendar of March 2019 is:")
    print (calendar.month(2019, 3, 2, 1))
    

    Salida:

    Calendar of March 2019 is:
         March 2019
    Mo Tu We Th Fr Sa Su
                 1  2  3
     4  5  6  7  8  9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31
    

    Imprimir calendario para un a帽o espec铆fico

    Podemos imprimir el calendario para todo un a帽o, usando la siguiente funci贸n:

    calendar.calendar(yyyy, w, l, c, m)
    

    La funci贸n anterior devuelve el calendario para todo el a帽o, para el a帽o especificado como argumento. Los argumentos pasados 鈥嬧媋 esta funci贸n son el a帽o (yyyy), ancho de columna de fecha (w), n煤mero de l铆neas por semana (l), n煤mero de espacios entre la columna del mes (c), n煤mero de columnas (m).

    Por ejemplo, para imprimir el calendario del a帽o 2019, utilice:

    print(calendar.calendar(2019, 2, 2, 6, 3))
    

    Salida:

    January                   February                   March
    
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
    
        1  2  3  4  5  6                   1  2  3                   1  2  3
    
     7  8  9 10 11 12 13       4  5  6  7  8  9 10       4  5  6  7  8  9 10
    
    14 15 16 17 18 19 20      11 12 13 14 15 16 17      11 12 13 14 15 16 17
    
    21 22 23 24 25 26 27      18 19 20 21 22 23 24      18 19 20 21 22 23 24
    
    28 29 30 31               25 26 27 28               25 26 27 28 29 30 31
    
    
    
           April                      May                       June
    
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
    
     1  2  3  4  5  6  7             1  2  3  4  5                      1  2
    
     8  9 10 11 12 13 14       6  7  8  9 10 11 12       3  4  5  6  7  8  9
    
    15 16 17 18 19 20 21      13 14 15 16 17 18 19      10 11 12 13 14 15 16
    
    22 23 24 25 26 27 28      20 21 22 23 24 25 26      17 18 19 20 21 22 23
    
    29 30                     27 28 29 30 31            24 25 26 27 28 29 30
    
    
    
            July                     August                  September
    
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
    
     1  2  3  4  5  6  7                1  2  3  4                         1
    
     8  9 10 11 12 13 14       5  6  7  8  9 10 11       2  3  4  5  6  7  8
    
    15 16 17 18 19 20 21      12 13 14 15 16 17 18       9 10 11 12 13 14 15
    
    22 23 24 25 26 27 28      19 20 21 22 23 24 25      16 17 18 19 20 21 22
    
    29 30 31                  26 27 28 29 30 31         23 24 25 26 27 28 29
    
                                                        30
    
    
    
          October                   November                  December
    
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
    
        1  2  3  4  5  6                   1  2  3                         1
    
     7  8  9 10 11 12 13       4  5  6  7  8  9 10       2  3  4  5  6  7  8
    
    14 15 16 17 18 19 20      11 12 13 14 15 16 17       9 10 11 12 13 14 15
    
    21 22 23 24 25 26 27      18 19 20 21 22 23 24      16 17 18 19 20 21 22
    
    28 29 30 31               25 26 27 28 29 30         23 24 25 26 27 28 29
    
                                                        30 31
    

    Nota: En lugar de utilizar “imprimir”, podemos utilizar alternativamente calendar.prmonth() y calendar.pryear() funciones para imprimir los calendarios de mes y a帽o. Estas funciones imprimen la salida en su terminal.

    Comprobaci贸n de un a帽o bisiesto

    Nosotros podemos usar isleap() funci贸n para comprobar si un a帽o es bisiesto o no. El a帽o se pasa como argumento a la funci贸n y la funci贸n devuelve True si el a帽o es bisiesto, de lo contrario vuelve False si el a帽o no es bisiesto. Usemos esta funci贸n para ver si el a帽o 2016 es bisiesto:

    calendar.isleap(2016)
    

    Salida:

    True
    

    N煤mero de a帽os bisiestos dentro del rango

    Tambi茅n es posible verificar el n煤mero de a帽os bisiestos en un rango de a帽os dado, especificado como un argumento para la siguiente funci贸n:

    calendar.leapdays(year1, year2)
    

    Los argumentos pasados 鈥嬧媋 la funci贸n son 2 valores de a帽o v谩lidos. Esta funci贸n devuelve el n煤mero de a帽os bisiestos entre esos a帽os.

    Ejemplo:

    calendar.leapdays(2000, 2017)
    

    Salida:

    5
    

    Como se ve, hay 5 a帽os bisiestos entre 2000 y 2017, por lo que la salida es 5.

    Devuelve el d铆a de la semana

    los weekday El m茅todo toma 3 argumentos, a saber: a帽o, mes y d铆a. La funci贸n devuelve el d铆a de la semana, el lunes tiene un 铆ndice de 0 y el domingo tiene un 铆ndice de 6. Por ejemplo:

    calendar.weekday(2019, 3, 21)
    

    Salida:

    3
    

    Como se ve, esta funci贸n devuelve el valor de 铆ndice “3”, que es “jueves”.

    Obtener nombres abreviados de d铆as de la semana

    La funci贸n weekheader toma una discusi贸n n, que especifica el n煤mero de caracteres para un nombre de d铆a de la semana en particular y devuelve un encabezado que contiene nombres de d铆as de la semana abreviados.

    Por ejemplo:

    print (calendar.weekheader(2))
    

    Salida:

    Mo Tu We Th Fr Sa Su
    

    Similar,

    print (calendar.weekheader(3))
    

    Salida:

    Mon Tue Wed Thu Fri Sat Sun
    

    Obtener el n煤mero de d铆as de un mes

    los monthrange La funci贸n toma 2 argumentos: a帽o y mes. Esta funci贸n devuelve una tupla que contiene el 铆ndice del d铆a de la semana en el que comienza el mes y el n煤mero de d铆as del mes.

    Por ejemplo:

    print (calendar.monthrange(1983, 12))
    

    Salida:

    {3,31}
    

    Dado que el primer d铆a de diciembre de 1983 fue un jueves, la funci贸n devuelve el valor de 铆ndice del jueves como primer elemento de la tupla, y 31 ya que es el n煤mero de d铆as de diciembre.

    Obtenga las semanas en un mes

    los monthcalendar La funci贸n toma 2 argumentos: a帽o y mes y devuelve una matriz, en la que cada fila representa una semana de ese mes.

    Por ejemplo:

    print(calendar.monthcalendar(1983, 11))
    

    Salida:

    [[0,1,2,3,4,5,6], [7,8,9,10,11,12,13], [14,15,16,17,18,19,20], [21,22,23,24,25,26,27], [28,19,30,0,0,0]]
    

    Como puede ver, cada matriz de semana comienza con el lunes y los d铆as fuera del mes se representan con ceros. Entonces, la primera matriz indica que el primer d铆a del mes es martes.

    Modificaci贸n de la configuraci贸n predeterminada

    La configuraci贸n predeterminada del calendario se puede modificar para adaptarse a sus necesidades. Por ejemplo, la siguiente secuencia de comandos establece el lunes como el primer d铆a de la semana.

    class calendar.calendar(firstweekday=0)
    

    De forma predeterminada, los calendarios siguen la convenci贸n europea, teniendo el lunes como primer d铆a de la semana y el domingo como 煤ltimo d铆a de la semana. Adem谩s, el mes de enero tiene el valor de 铆ndice 1 y diciembre tiene el valor de 铆ndice 12.

    M茅todos 煤tiles de la clase Calendar

    Los siguientes son algunos de los m茅todos m谩s 煤tiles de la clase de calendario.

    El m茅todo iterweekdays ()

    Este m茅todo devuelve un iterador que contiene una lista de 铆ndices para los d铆as de una semana.

    Por ejemplo:

    import calendar
    
    c = calendar.Calendar()
    for i in c.iterweekdays():
        print (i, end=" ")
    

    Salida:

    0 1 2 3 4 5 6
    

    El m茅todo itermonthdates ()

    los itermonthdates() toma 2 argumentos: a帽o y mes. Esta funci贸n devuelve un iterador de todos los d铆as del mes dado. Adem谩s, se muestran todos los d铆as antes del comienzo del mes y despu茅s del final del mes, necesarios para obtener la semana completa.

    Ejemplo:

    import calendar
    
    c = calendar.Calendar()
    for i in c.itermonthdates (2019, 1):
        print (i, end=" ")
    

    Salida:

    2018-12-31 2019-01-01 2019-01-02 2019-01-03 ..............2019-02-03
    

    El m茅todo itermonthdays ()

    Este m茅todo es similar a itermonthdates m茅todo, pero solo devuelve los n煤meros de d铆a.

    Ejemplo:

    import calendar
    
    c = calendar.Calendar()
    for i in c.itermonthdays (2019, 1):
        print (i, end=" ")
    

    Salida:

    0 1 2 3 4 5 6........ 31 0 0 0
    

    Como puede ver, todos los d铆as antes del comienzo del mes y despu茅s del final del mes para obtener la semana completa se establecen en “0”.

    El m茅todo itermonthdays2 ()

    Este m茅todo muestra una tupla que consta de d铆as y n煤meros de d铆as de la semana.

    Ejemplo:

    import calendar
    
    c = calendar.Calendar()
    for i in c.itermonthdays2 (2019, 1):
        print (i, end=" ")
    

    Salida:

    (0,0) (1,1) (2,2) (3,3) (4,4) (5,5) (6,6) (7,0) (8,1) (9,2) ...........
    

    El m茅todo itermonthdays3 ()

    Este m茅todo es bastante similar al itermonthdays3() m茅todo, excepto que devuelve una tupla de a帽o, mes y d铆a del mes.

    Ejemplo:

    import calendar
    
    c = calendar.Calendar()
    for i in c.itermonthdays3 (2019, 1):
        print (i, end=" ")
    

    Salida:

    (2018,12,31) (2019,01,01) (2019,01,02).....(2019,01,31) (2019,02,01) (2019,02,02) (2019,02,03)
    

    El m茅todo monthdatescalendar ()

    Este m茅todo toma a帽o y mes como argumentos y devuelve una lista de semanas completas del mes. Cada semana es una lista de 7 objetos datetime.date.

    Ejemplo:

    import calendar
    
    c = calendar.Calendar()
    for i in c.monthdatescalendar (2019, 1):
        print (i, end=" ")
    

    Salida:

    [datetime.date(2018, 12, 31), datetime.date(2019, 01, 01), datetime.date(2019, 01, 02), datetime.date(2019, 01, 03), datetime.date(2019, 01, 04), datetime.date(2019, 01, 05), datetime.date(2019, 01, 06)... datetime.date(2019, 02, 03)]
    .....
    

    El m茅todo monthdays2calendar ()

    Esta funci贸n toma el a帽o y el mes como argumentos y devuelve una lista de semanas, con cada semana como 7 tuplas del d铆a del mes y del d铆a de la semana.

    Ejemplo:

    import calendar
    
    c = calendar.Calendar()
    for i in c.monthdays2calendar (2019, 1):
        print(i, end=" ")
    

    Salida:

    [(0,0) (1,1) (2,2) (3,3) (4,4) (5,5) (6,6)]
    [(7,0) (8,1) (9,2) (10,3) (11,4) (12,5) (13,6)]
    ....
    

    Como puede ver, el primer valor de la tupla es el d铆a del mes (0-31) y el segundo valor de la tupla es el n煤mero de semana (0-6)

    El m茅todo monthdayscalendar ()

    Este m茅todo toma a帽o y mes como argumentos y devuelve una lista de semanas completas, siendo cada semana una lista de d铆as de un mes.

    Ejemplo:

    import calendar
    
    c = calendar.Calendar()
    for i in c.monthdayscalendar(2019, 1):
        print (i, end=" ")
    

    Salida de muestra:

    [0, 1, 2 , 3, 4, 5, 6] [7, 8, 9, 10, 11, 12, 13]....[28, 29, 30, 31, 0, 0, 0]
    

    El m茅todo yeardatescalendar ()

    Esta funci贸n toma el a帽o (yyyy) y el n煤mero de meses seguidos (w). Por defecto, w el par谩metro es 3. La funci贸n devuelve una lista de filas de meses, donde los d铆as son datetime.date objetos.

    Ejemplo:

    import calendar
    
    c = calendar.Calendar()
    for i in c.yeardatescalendar(2019, 3):
        print (i, end=" ")
    

    Salida:

    [[[datetime.date(2018, 12, 31), datetime.date(2019, 1, 1), datetime.date(2019, 1, 2), datetime.date(2019, 1, 3), datetime.date(2019, 1, 4), datetime.date(2019, 1, 5), datetime.date(2019, 1, 6)], [datetime.date(2019, 1, 7), datetime.date(2019, 1, 8), datetime.date(2019, 1, 9), datetime.date(2019, 1, 10), datetime.date(2019, 1, 11), datetime.date(2019, 1, 12), datetime.date(2019, 1, 13)], [datetime.date(2019, 1, 14), datetime.date(2019, 1, 15), datetime.date(2019, 1, 16), datetime.date(2019, 1, 17), datetime.date(2019, 1, 18), datetime.date(2019, 1, 19), datetime.date(2019, 1, 20)], [datetime.date(2019, 1, 21), datetime.date(2019, 1, 22), datetime.date(2019, 1, 23), datetime.date(2019, 1, 24), datetime.date(2019, 1, 25), datetime.date(2019, 1, 26), datetime.date(2019, 1, 27)], [datetime.date(2019, 1, 28), datetime.date(2019, 1, 29), datetime.date(2019, 1, 30), datetime.date(2019, 1, 31), datetime.date(2019, 2, 1), datetime.date(2019, 2, 2), datetime.date(2019, 2, 3)]] ... ]
    

    El m茅todo yeardays2calendar ()

    Esta funci贸n toma el a帽o (yyyy) y la cantidad de meses que queremos en una fila de meses (w). Por defecto, el w el par谩metro es 3. La funci贸n devuelve una lista de semanas, como tuplas de d铆as del mes y el d铆a de la semana.

    Ejemplo:

    import calendar
    
    c = calendar.Calendar()
    for i in c.yeardays2calendar(2019, 3):
        print (i, end=" ")
    

    Salida:

    [[[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)], [(7, 0), (8, 1), (9, 2), (10, 3), (11, 4), (12, 5), (13, 6)], [(14, 0), (15, 1), (16, 2), (17, 3), (18, 4), (19, 5), (20, 6)], [(21, 0), (22, 1), (23, 2), (24, 3), (25, 4), (26, 5), (27, 6)], [(28, 0), (29, 1), (30, 2), (31, 3), (0, 4), (0, 5), (0, 6)]], [[(0, 0), (0, 1), (0, 2), (0, 3), (1, 4), (2, 5), (3, 6)], [(4, 0), (5, 1), (6, 2), (7, 3), (8, 4), (9, 5), (10, 6)], [(11, 0), (12, 1), (13, 2), (14, 3), (15, 4), (16, 5), (17, 6)], [(18, 0), (19, 1), (20, 2), (21, 3), (22, 4), (23, 5), (24, 6)], [(25, 0), (26, 1), (27, 2), (28, 3), (0, 4), (0, 5), (0, 6)]], [[(0, 0), (0, 1), (0, 2), (0, 3), (1, 4), (2, 5), (3, 6)] ... ]]
    

    El m茅todo yeardayscalendar ()

    Esta funci贸n toma el a帽o (yyyy) y la cantidad de meses que queremos en una fila de mes (w). Por defecto, w el par谩metro es 3. La funci贸n devuelve una lista de semanas como d铆a del mes.

    Ejemplo:

    import calendar
    
    c = calendar.Calendar()
    for i in c.yeardayscalendar(2019, 3):
        print (i, end=" ")
    

    Salida:

    [[[0, 1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12, 13], [14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27], [28, 29, 30, 31, 0, 0, 0]], [[0, 0, 0, 0, 1, 2, 3], [4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23, 24], [25, 26, 27, 28, 0, 0, 0]], [[0, 0, 0, 0, 1, 2, 3], [4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23, 24], [25, 26, 27, 28, 29, 30, 31]]] [[[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15, 16, 17, 18, 19, 20, 21], [22, 23, 24, 25, 26, 27, 28], [29, 30, 0, 0, 0, 0, 0]] ... ]]
    

    los TextCalendar Clase

    los TextCalendar se utiliza para generar calendarios de texto sin formato. Similar a Calendar clase. Esta clase toma un constructor donde el primer d铆a de la semana se establece en 0, por defecto. Veamos los m茅todos proporcionados por el TextCalendar clase.

    El m茅todo formatmonth ()

    Este m茅todo toma 4 argumentos a saber: a帽o, mes, el ancho de la columna de d铆as (w), y una serie de l铆neas utilizadas por cada semana (l). Este m茅todo devuelve una cadena de varias l铆neas.

    Ejemplo:

    import calendar
    
    c = calendar.TextCalendar()
    print(c.formatmonth(2019, 1))
    

    Esto muestra el calendario de enero de 2019.

    Salida:

        January 2019
    Mo Tu We Th Fr Sa Su
        1  2  3  4  5  6
     7  8  9 10 11 12 13
    14 15 16 17 18 19 20
    21 22 23 24 25 26 27
    28 29 30 31
    

    El m茅todo prmonth ():

    Este m茅todo imprime el calendario de un mes como lo devuelve el formatmonth m茅todo. Podemos utilizar esta funci贸n para evitar el uso de la funci贸n “imprimir”, para imprimir el calendario en el terminal.

    Para imprimir el calendario de enero de 2019, utilice:

    c.prmonth(2019, 1)
    

    El m茅todo formatyear ():

    Este m茅todo devuelve un calendario de columna “m” para todo el a帽o. Los argumentos pasados 鈥嬧媋 esta funci贸n son a帽o (yyyy), ancho de columna de fecha (w), n煤mero de l铆neas por semana (l), n煤mero de espacios entre la columna del mes (c), n煤mero de columnas (m).

    los LocaleTextCalendar clase:

    Esta es una subclase de TextCalendar clase. Su constructor toma un argumento adicional, locale. Devolver谩 los nombres de los meses y d铆as de la semana, en la configuraci贸n regional especificada. Podemos crear un objeto de calendario de texto en nuestro idioma nativo. Podemos buscar meses o d铆as de la semana u otros datos para mostrar el calendario formateado desde el sistema local, que no sea el predeterminado actual. Ejemplo:

    import calendar
    
    for name in calendar.month_name:
        print(name)
    

    Esto imprimir谩 el nombre de los meses, seg煤n el sistema local.

    Salida:

    January
    February
    March
    April
    May
    June
    July
    August
    September
    October
    November
    December
    

    los HTMLCalendar Clase:

    Esto es similar a TextCalendar class, pero genera un calendario HTML. El constructor de esta clase tiene la firstweekday establecido en “0”.

    A continuaci贸n se muestran algunos de los m茅todos proporcionados por HTMLCalendar clase.

    El m茅todo formatmonth ():

    Esta funci贸n muestra el calendario de un mes, en formato de tabla HTML. Podemos mostrar el calendario de abril de 2019 como una tabla HTML, usando:

    hc = calendar.HTMLCalendar()
    print(hc.formatmonth(2019, 4))
    

    Salida:

    <table border="0" cellpadding="0" cellspacing="0" class="month">
    <tr><th colspan="7" class="month">April 2019</th></tr>
    <tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
    <tr><td class="mon">1</td><td class="tue">2</td><td class="wed">3</td><td class="thu">4</td><td class="fri">5</td><td class="sat">6</td><td class="sun">7</td></tr>
    <tr><td class="mon">8</td><td class="tue">9</td><td class="wed">10</td><td class="thu">11</td><td class="fri">12</td><td class="sat">13</td><td class="sun">14</td></tr>
    <tr><td class="mon">15</td><td class="tue">16</td><td class="wed">17</td><td class="thu">18</td><td class="fri">19</td><td class="sat">20</td><td class="sun">21</td></tr>
    <tr><td class="mon">22</td><td class="tue">23</td><td class="wed">24</td><td class="thu">25</td><td class="fri">26</td><td class="sat">27</td><td class="sun">28</td></tr>
    <tr><td class="mon">29</td><td class="tue">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
    </table>
    

    El m茅todo formatyear ():

    Este m茅todo toma a帽o y n煤mero de meses seguidos (w) como argumentos e imprime el calendario del a帽o completo como una tabla HTML. De forma predeterminada, el ancho se establece en 3. Podemos mostrar el calendario 2019 como una tabla HTML usando:

    hc = calendar.HTMLCalendar()
    print(hc.formatyear(2019, 4))
    

    El m茅todo formatyearpage ():

    Este m茅todo lleva un a帽o, varios meses seguidos (w), hoja de estilo en cascada (CSS) y codificaci贸n, como argumentos. los css y encoding los argumentos se pueden establecer en None, en caso de que no usemos CSS y codificaci贸n. Esta funci贸n muestra el calendario de un a帽o completo como una p谩gina HTML con un ancho predeterminado de 3. Podemos imprimir el calendario del a帽o 2019 como una p谩gina HTML usando:

    hc = calendar.HTMLCalendar()
    print(hc.formatyearpage(2019, 3, css=None, encoding=None))
    
    b'<?xml version="1.0" encoding="utf-8"?>n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">n<html>n<head>n<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />n<title>Calendar for 2019</title>n</head>n<body>n<table border="0" cellpadding="0" cellspacing="0" class="year">n<tr><th colspan="3" class="year">2019</th></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="month">n<tr><th colspan="7" class="month">January</th></tr>n<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>n<tr><td class="noday">&nbsp;</td><td class="tue">1</td><td class="wed">2</td><td class="thu">3</td><td class="fri">4</td><td class="sat">5</td><td class="sun">6</td></tr> ... </table></body>n</html>n'
    

    los HTMLCalendar la salida es similar a la versi贸n de texto sin formato, pero est谩 envuelta con etiquetas HTML. La celda de la tabla HTML contiene un atributo de clase correspondiente al d铆a de la semana. Por lo tanto, el calendario HTML se puede dise帽ar a trav茅s de CSS.

    La clase LocaleHTMLCalendar

    Esta es una subclase del HTMLCalendar clase. Su constructor toma un argumento adicional, locale. Devolver谩 los nombres de los meses y d铆as de la semana, en la configuraci贸n regional especificada, como una tabla HTML. Podemos crear un objeto de calendario de texto en nuestro idioma nativo. Por ejemplo, podemos generar el calendario de abril de 2019 como una tabla HTML en la configuraci贸n regional ‘en_AU’ usando:

    import calendar
    
    cal = calendar.LocaleHTMLCalendar(locale="en_AU.utf8")
    print(cal.formatmonth(2019, 4))
    

    Salida:

    <table border="0" cellpadding="0" cellspacing="0" class="month">
    <tr><th colspan="7" class="month">April 2019</th></tr>
    <tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
    <tr><td class="mon">1</td><td class="tue">2</td><td class="wed">3</td><td class="thu">4</td><td class="fri">5</td><td class="sat">6</td><td class="sun">7</td></tr>
    <tr><td class="mon">8</td><td class="tue">9</td><td class="wed">10</td><td class="thu">11</td><td class="fri">12</td><td class="sat">13</td><td class="sun">14</td></tr>
    <tr><td class="mon">15</td><td class="tue">16</td><td class="wed">17</td><td class="thu">18</td><td class="fri">19</td><td class="sat">20</td><td class="sun">21</td></tr>
    <tr><td class="mon">22</td><td class="tue">23</td><td class="wed">24</td><td class="thu">25</td><td class="fri">26</td><td class="sat">27</td><td class="sun">28</td></tr>
    <tr><td class="mon">29</td><td class="tue">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
    </table>
    

    Conclusi贸n

    En este tutorial, discutimos el uso de diferentes clases y subclases de Calendar m贸dulo en Python para trabajar con fechas para administrar valores orientados a la semana / mes / a帽o. Tambi茅n discutimos el uso de funciones en el m贸dulo Calendario de Python. Junto con esto, tambi茅n implementamos el TextCalendar y HTMLCalendar clases para producir una salida preformateada. 隆Espero que el tutorial haya sido informativo!

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *