Gelişmiş Python Geliştirme Kursu
Bölüm
>
Seviye
Dize & Zaman Modülleri
Takvim Modülü
Amaç
Takvim modülünü kullanarak takvime göz atın ve bazı teslimat zaman çizelgeleri için tarihleri ayarlayın.
Yeni çiftlik inşaatı etrafında dağıtılmak üzere çeşitli gönderiler geldi ve karşılanması gereken zaman çizelgeleri mevcut. Daha önce kargo etiketlerini ayarlamak için date modülünü kullandık; burada takvim modülünü kullanarak zaman çizelgeleri ayarlayacağız. Modülün sınıflarını ve fonksiyonlarını kullanabilmek için tüm ilgili materyalleri içe aktarmak üzere import calendar komutunu kullanın.
Amacımız için aşağıdaki takvim modülü fonksiyonlarını kullanacağız:
calendar.calendar():Yılı tam takvim olarak görüntüler, görüntülemek istediğiniz yılı belirten bir (1) argüman alır.calendar.month():Tek bir ayın takvimini görüntüler, yıl ve ay olmak üzere iki (2) argüman alır.calendar.isleap():Bir yılın artık yıl olup olmadığını kontrol eder, kontrol edilecek yılı belirten bir (1) argüman alır.calendar.leapdays():Yıllar arasında birikmiş artık gün sayısını kontrol eder, kontrol etmek istediğiniz dönemi kapsayan iki (2) yıl argümanı alır.itermonthdays():Calendar()sınıfını kullanır, ay içindeki tüm günler üzerinde yineleme yapar; yıl ve ay olmak üzere iki argüman alır.itermonthdates():Calendar()sınıfını kullanır, ay içindeki tüm tarihleri üzerinde yineleme yapar; yıl ve ay olmak üzere iki argüman alır.monthdayscalendar():Calendar()sınıfını kullanır, ay içindeki tüm haftaları yineleme yapar; yıl ve ay olmak üzere iki argüman alır. Verileri iç içe liste olarak saklar.monthdays2calendar():Önceki fonksiyonla aynıdır ancak haftaları ve günleri birlikte iki boyutlu bir listede saklar.
Başlamak için, altın X işaretine gidip takvimi kontrol edin; cal adında bir değişken oluşturun ve calendar.calendar() fonksiyonunun değerini, 2026 yılını argüman olarak ekleyerek saklayın; örneğin: cal = calendar.calendar(2026). Oluşturduğunuz cal değişkenini görüntülemek için display() fonksiyonunu kullanın.
Takvimi kontrol edip görüntüledikten sonra, hafif X işaretine gidin ve masadaki tabloyu inceleyin. Planlanan tedarik ay tarihine ait notu kontrol etmek için read() fonksiyonunu kullanın. Okuduğunuz bilgileri doldurmak üzere year adlı bir değişken ve month adlı bir değişken oluşturun.
calendar_month adında bir değişken oluşturun ve year ile month değişkenlerini argüman olarak kullanarak calendar.month() fonksiyonunun değerini saklayın. Dağıtım zaman çizelgelerini ayarlamak için kullanılacak olan ay takvimini görüntülemek için display() fonksiyonunu kullanın.
Yeşil halı üzerindeki koyu X işaretine gidin; burada zaman çizelgelerinin kaymadığından emin olmak için bazı veri noktalarını not alacağız. leap_year adında bir değişken ve leap_days adında bir değişken oluşturun. leap_year değişkeni için, calendar.isleap() fonksiyonunun sonucunu saklayın ve 2026 argümanını kullanın. Bu, mevcut proje yılının artık yıl olup olmadığını doğrulamanıza olanak tanır. leap_days değişkeni için, calendar.leapdays() fonksiyonunun değerini saklayın ve argüman olarak 2020 ile 2027 değerlerini ekleyin. Bu, tüm proje süresi boyunca meydana gelen artık gün miktarını doğrular. Yazılı olarak verilen write() fonksiyonunu kullanarak leap_year ve leap_days verilerini kaydedin.
Kırmızı halı üzerindeki koyu X işaretine gidin ve masaya dönün; burada ayın programını çizeceğiz. date adında bir değişken oluşturun ve calendar.Calendar() fonksiyonunun değerini saklayın; bu, daha sonra başvurabileceğimiz bir sınıf nesnesi oluşturur. day_roster adında başka bir değişken oluşturun ve boş bir string değeri atayın; bu, gün listesini bir string içinde saklamamıza olanak tanır. Örneğin: day_roster = "".
Editörde önceden yazılmış bir for döngüsü var ve takvimi yineleyerek tarihleri belirtiyor. itermonthdays() fonksiyonunu kullanın ve daha önce oluşturduğunuz year ile month değişkenlerini argüman olarak ekleyin. Liste toplamını oluşturmak için eksik öğeleri gerektiğinde ekleyin.
for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry
Döngü ayarlandıktan sonra, bu döngünün bir kopyasını oluşturun; ancak itermonthdays() fonksiyonu yerine itermonthdates() fonksiyonunu kullanın ve year ile month değişkenlerini argüman olarak ekleyin. entry değişkeni için, verileri şu şekilde kaydetmesini sağlayın: entry = "%s \n" % (day). Bu, proje süresinin tam tarihlerini verecektir. Proje günlerinin tam listesini takvimde görüntülemek için day_roster değişkeni ile yazılı olarak verilen display() fonksiyonunu kullanın.
Mavi halı üzerindeki koyu X işaretine gidin ve notaya dönün; burada proje takip çalışma haftalarını listeler halinde belirleyeceğiz. weeks adında bir değişken oluşturun ve calendar.Calendar() fonksiyonunun değerini saklayın; bu, fonksiyonlarla başvurabileceğimiz bir sınıf nesnesi oluşturur. Çalıştığınız zaman çizelgesini yükseltmek için month değişkeninin değerini 7 olarak değiştirin; örneğin: month = 7.
week_roster adında bir değişken oluşturun ve boş bir string değeri atayın; bu, hafta listesini bir string içinde saklamamıza olanak tanır. Örneğin: week_roster = "". Editörde önceden yazılmış bir for döngüsü var ve takvimi yineleyerek hafta günlerini belirtiyor. monthdayscalendar() fonksiyonunu kullanın ve daha önce oluşturduğunuz year ile month değişkenlerini argüman olarak ekleyin. Liste toplamını oluşturmak için eksik öğeleri gerektiğinde ekleyin.
for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry
Döngü ayarlandıktan sonra, bu döngünün bir kopyasını oluşturun; ancak monthdayscalendar() fonksiyonu yerine monthdays2calendar() fonksiyonunu kullanın ve year ile month değişkenlerini argüman olarak ekleyin. Bu, proje süresinin tam tarihlerini verecektir. Seviyeyi tamamlamak için, takvimde proje hafta günlerinin tam listesini görüntülemek üzere week_roster değişkeni ile yazılı olarak verilen display() fonksiyonunu kullanın.