Avanceret Python Udviklingskursus
Kapitel
>
Niveau
Streng og tidsmoduler
Kalendermodul
Mål
Tjek kalenderen og sæt datoer for nogle af leveringsplanerne ved at bruge Kalendermodulet.
Der er flere forsendelser, der er ankommet, og tidsplaner, der skal overholdes, så de kan blive distribueret i forbindelse med den nye gårdkonstruktion. Tidligere brugte vi datomodulet til at opsætte forsendelsesetiketter; her vil vi sætte tidsplanerne ved hjælp af kalendermodulet. For at gøre brug af modulets klasser og funktioner, skal du bruge import calendar for at importere alt relevant materiale.
Til vores formål vil vi bruge følgende funktioner fra kalendermodulet:
calendar.calendar():Viser en komplet kalender for året, tager et (1) argument, som er det år, du ønsker at vise.calendar.month():Viser en kalender for en enkelt måned, tager to (2) argumenter, året og måneden.calendar.isleap():Tjekker om et år er et skudår, tager et (1) argument, som er det år, der skal tjekkes.calendar.leapdays():Tjekker antallet af skuddage akkumuleret over flere år, tager to (2) argumenter, som angiver de år, der dækker den periode, du ønsker at tjekke.itermonthdays():BrugerCalendar()klassen, itererer gennem alle dagene i måneden, tager to argumenter, året og måneden.itermonthdates():BrugerCalendar()klassen, itererer gennem alle datoer i måneden, tager to argumenter, året og måneden.monthdayscalendar():BrugerCalendar()klassen, itererer gennem alle uger i måneden, tager to argumenter, året og måneden. Lagrer dataene i en indlejret liste.monthdays2calendar():Som den forrige funktion, men den lagrer uger og dage sammen i en todimensionel liste.
For at komme i gang, gå til det guld X-mærke og tjek kalenderen. Opret en variabel ved navn cal og gem værdien af calendar.calendar() med året 2026 som argument, således: cal = calendar.calendar(2026). Brug display() funktionen til at vise variablen cal, som du netop har opsat.
Efter at have tjekket og vist kalenderen, gå til det lyse X-mærke og tjek regnearket på skrivebordet. Brug read() funktionen til at tjekke notatet for den planlagte leveringsdato for måneden. Opret to variable, en ved navn year og en ved navn month, og udfyld dem med de oplysninger, du har læst.
Opret en variabel ved navn calendar_month og gem værdien af calendar.month() funktionen ved at bruge year og month variablerne som argumenter. Brug display() funktionen til at vise kalendermåneden, som vil blive brugt til at sætte distributions-tidsplanerne.
Gå til det mørke X-mærke over det grønne tæppe; her vil vi notere nogle datapunkter for at sikre, at tidsplanerne ikke bliver forskudt. Opret to variable, en ved navn leap_year og en ved navn leap_days. For variablen leap_year skal du gemme resultatet af calendar.isleap() med 2026 som argument. Dette gør det muligt for dig at bekræfte, om det nuværende projektår er et skudår. For variablen leap_days skal du gemme værdien af calendar.leapdays() med argumenterne 2020 og 2027. Dette bekræfter antallet af skuddage, der er opstået i løbet af hele projektets varighed. Brug den forudskrevne write() funktion til at notere dataene med leap_year og leap_days.
Gå til det mørke X-mærke over det røde tæppe og vend dig mod skrivebordet; her vil vi skitsere månedens tidsplan. Opret en variabel ved navn date og gem værdien af calendar.Calendar(). Dette opretter et klasseobjekt, som vi kan referere til senere. Opret en anden variabel ved navn day_roster og tildel den en tom streng, således: day_roster = "".
Forudskrevet i editoren er der en for-løkke, der itererer gennem kalenderen og skitserer datoerne. Brug funktionen itermonthdays() og tilføj de year og month variabler, du oprettede tidligere, som argumenter. Tilpas de manglende dele efter behov for at opbygge dagsoversigten.
for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry
Når løkken er opsat, skal du gentage løkken, men erstatte itermonthdays() funktionen med itermonthdates() og tilføje de year og month variabler som argumenter. For variablen entry skal du registrere dataene således: entry = "%s \n" % (day). Disse vil give os de komplette datoer for projektets varighed. Brug den forudskrevne display() funktion med variablen day_roster for at vise den fulde oversigt over projektets dage i kalenderen.
Gå til det mørke X-mærke over det blå tæppe og vend dig mod notatet; her skal vi sætte projektets opfølgningsarbejde-uger op, organiseret i lister. Opret en variabel ved navn weeks og gem værdien af calendar.Calendar(). Dette opretter et klasseobjekt, som vi kan benytte funktionerne på. Ændr værdien af variablen month til 7 for at rykke tidsplanen, vi arbejder med, op, således: month = 7.
Opret en variabel ved navn week_roster og tildel den en tom streng, således: week_roster = "". Forudskrevet i editoren er der en for-løkke, der itererer gennem kalenderen og skitserer ugedagene. Brug funktionen monthdayscalendar() og tilføj de year og month variabler, du oprettede tidligere, som argumenter. Tilpas de manglende dele efter behov for at opbygge ugeoversigten.
for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry
Når løkken er opsat, skal du gentage løkken, men erstatte funktionen monthdayscalendar() med monthdays2calendar() og tilføje de year og month variabler som argumenter. Disse vil give os de fulde datoer for projektets varighed. Brug den forudskrevne display() funktion med variablen week_roster for at vise den komplette oversigt over projektets ugedage i kalenderen for at fuldføre niveauet.