Coding for KidsCoding for Kids
Kreativa NivåerUtmaningarLärarguide
Rösta på funktioner
Avancerad Pythonutvecklingskurs
Kapitel
>
Nivå

Sträng- och tidsmoduler
Kalendermodul

Mål

Kontrollera kalendern och ställ in datum för några av leveranstidsplanerna genom att använda kalendermodulen.

Det finns flera sändningar som anlände och tidsscheman som måste följas så att de kan distribueras i samband med den nya gårdsbyggnationen. Tidigare använde vi datummodulen för att ställa in fraktsedlar, men här ska vi ställa in tidsscheman med hjälp av kalendermodulen. För att kunna använda modulens klasser och funktioner, använd import calendar för att importera allt relevant material.

För våra ändamål kommer vi att använda följande funktioner från kalendermodulen:

  • calendar.calendar(): Visar hela kalendern för året, tar ett (1) argument, det år du vill visa.
  • calendar.month(): Visar en kalender för en enskild månad, tar två (2) argument, året och månaden.
  • calendar.isleap(): Kontrollerar om ett år är ett skottår, tar ett (1) argument, det år som ska kontrolleras.
  • calendar.leapdays(): Kontrollerar antalet skottdagar ackumulerade över åren, tar två (2) argument, de år som spänner över den period du vill kontrollera.
  • itermonthdays(): Använder Calendar()-klassen, itererar genom alla dagar i månaden, tar två argument, året och månaden.
  • itermonthdates(): Använder Calendar()-klassen, itererar genom alla datum i månaden, tar två argument, året och månaden.
  • monthdayscalendar(): Använder Calendar()-klassen, itererar genom alla veckor i månaden, tar två argument, året och månaden. Lagrar datan i en nästlad lista.
  • monthdays2calendar(): Samma som föregående funktion men lagrar veckor och dagar tillsammans i en tvådimensionell lista.

För att komma igång, gå till det gyllene X-märket och kontrollera kalendern. Skapa en variabel med namnet cal och lagra värdet av calendar.calendar() med året 2026 som argument, på följande sätt: cal = calendar.calendar(2026). Använd funktionen display() för att visa variabeln cal som du just ställt in.

Efter att du har kontrollerat och visat kalendern, gå till det ljusa X-märket och kontrollera kalkylbladet på skrivbordet. Använd funktionen read() för att läsa meddelandet med den schemalagda datummånaden för leveransen. Skapa två variabler, en med namnet year och en med namnet month, och fyll dem med den information du läst.

Skapa en variabel med namnet calendar_month och lagra värdet av funktionen calendar.month() med hjälp av variablerna year och month som argument. Använd funktionen display() för att visa kalendermånaden som kommer att användas för att ställa in distributionsscheman.

Gå till det mörka X-märket över den gröna mattan, här ska vi skriva ner några datapunkter för att säkerställa att tidsschemana inte blir feljusterade. Skapa två variabler, en med namnet leap_year och en med namnet leap_days. För variabeln leap_year, lagra resultatet av calendar.isleap() med 2026 som argument. Detta gör att du kan verifiera om projektåret är ett skottår. För variabeln leap_days, lagra värdet av calendar.leapdays() med värdena 2020 och 2027 som argument. Detta verifierar antalet skottdagar som inträffat under hela projektets varaktighet. Använd den förskrivna funktionen write() och skicka in leap_year och leap_days för att föra ner datan.

Gå till det mörka X-märket över den röda mattan och vänd dig mot skrivbordet, här ska vi sätta upp månadsplanen. Skapa en variabel med namnet date och lagra värdet av calendar.Calendar(), vilket skapar ett klassobjekt som vi kan referera till senare. Skapa en annan variabel med namnet day_roster och sätt den till en tom sträng, så här: day_roster = "".

Förskrivet i editorn finns en for-loop som itererar genom kalendern och listar datumen. Använd funktionen itermonthdays() och lägg till variablerna year och month som du skapade tidigare som argument. Lägg till de saknade värdena om nödvändigt för att summera daglistan.

for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry

När loopen är uppsatt, fortsätt med att skapa en kopia av denna loop, men ersätt funktionen itermonthdays() med itermonthdates() och lägg till variablerna year och month som argument. För variabeln entry, låt den registrera datan så här: entry = "%s \n" % (day). Dessa kommer att ge oss de fullständiga datumen för projektets varaktighet. Använd den förskrivna funktionen display() med variabeln day_roster för att visa den fullständiga listan över projektets dagar i kalendern.

Gå till det mörka X-märket över den blå mattan och vänd dig mot meddelandet, här ska vi sätta upp projektets uppföljningsarbetsveckor, katalogiserade i listor. Skapa en variabel med namnet weeks och lagra värdet av calendar.Calendar(), vilket skapar ett klassobjekt som vi kan referera till med funktionerna. Ta variabeln month och ersätt dess värde med 7 för att flytta upp det tidsschema vi arbetar med, så här: month = 7.

Skapa en variabel med namnet week_roster och sätt den till en tom sträng, så här: week_roster = "". Förskrivet i editorn finns en for-loop som itererar genom kalendern och listar veckodagarna. Använd funktionen monthdayscalendar() och lägg till variablerna year och month som du skapade tidigare som argument. Lägg till de saknade värdena om nödvändigt för att summera veckolistan.

for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry

När loopen är uppsatt, fortsätt med att skapa en kopia av denna loop, men ersätt funktionen monthdayscalendar() med monthdays2calendar() och lägg till variablerna year och month som argument. Dessa kommer att ge oss de fullständiga datumen för projektets varaktighet. Använd den förskrivna funktionen display() med variabeln week_roster för att visa den fullständiga listan över projektets veckodagar i kalendern för att slutföra nivån.

Kodbok