Python Örnekle TAKVİM Eğitimi
Takvim modülü Python tarih, ay ve yıla dayalı olarak çeşitli görevlere yönelik hesaplamalara izin veren takvim sınıfına sahiptir. Bunun da ötesinde, TextCalendar ve HTMLCalendar sınıfı Python takvimi düzenlemenize ve ihtiyacınıza göre kullanmanıza olanak tanır.
Bakalım bununla neler yapabileceğiz Python Takvimi.
Adım1) Kodu çalıştırın.
- Kod Satırı # 1: Bu modülün tüm sınıflarını içe aktaracak “takvimi içe aktar” ile başlıyoruz.
- Kod Satırı # 3: c= Calendar.TextCalendar(calendar.SUNDAY) yorumlayıcıya bir metin takvimi oluşturmasını söyler. Ayın başlangıcı Pazar olacaktır. İçinde Python, ayın başlayacağı günü değiştirebileceğiniz gibi takvimi de biçimlendirebilirsiniz.
- Kod Satırı #4: str= c.formatmonth(2025,1) 2025 yılı, 1. Ay – Ocak için takvim oluşturuyoruz.
- Kod Satırı # 5: print str çıktıyı yazdıracaktır.
Değeri hızla Pazar'dan Perşembe'ye değiştirelim ve çıktıyı kontrol edelim.
) 2 Adım Ayrıca Takvimi HTML formatında da yazdırabilirsiniz; bu özellik, geliştiricinin takvimin görünümünde ve tarzında herhangi bir değişiklik yapmak istemesi durumunda faydalıdır.
) 3 Adım Döngüler c.itermonthday (2025,4) komutunu kullanarak bir ayın günleri üzerinden o aya ait toplam gün sayısını getirir.
- Belirli bir ayın toplam gün sayısını almak için kodu çalıştırdığınızda, "Nisan" deyin, o zaman çıktıda 30 gün elde edersiniz, ancak bu günlerin yanı sıra başında ve bazen sonunda bazı sıfırlar da göreceksiniz. .
- Çıktıdaki sıfırlar, haftanın gününün çakışan bir ayda olduğu anlamına gelir, yani o aya ait değildir.
- Bu sıfırlar çıktıda görünüyor çünkü kodunuzda günden (Perşembe) bahsetmişsiniz, yani “c.itermonthdays” fonksiyonunu çağırdığınızda, perşembeden itibaren günleri saymaya başlayacak ve perşembe gününüz tarih 1 ile başlamayabilir.st Nisan 28 olabilirth veya 29th Mart ayı, yani kodu çalıştırdığınızda 28'den itibaren günleri saymaya başlayacakth Mart ve sonrasında 1'e kadar herhangi bir günst nisanın. Bu günler sıfır olarak sayılacak ve çıktıda bu sıfırları göreceksiniz ve aynısı ay sonu için de geçerlidir.
- Dolayısıyla, 1-30 tarihi hariç, önceki ve ay sonrası tüm tarihler çıktıda sıfır olarak görünecektir.
) 4 Adım Aylar veya hafta içi günler gibi verileri yerel sistemden alabilirsiniz.
- Buradaki çıktı, yerel sistemden ayların adını yazdırdığımızı gösteriyor. Benzer şekilde, aşağıda gösterildiği gibi hafta içi günlerinin adını da alabilirsiniz.
-
Çıktı yerel sisteme bağlı olacaktır, varsayalım ki yerel sisteminiz başka bir ülke ise o ülkenin yerel ayarlarına göre çıktı verecektir. Burada aylarımız var o yüzden bir fark olmaz ama bir hafta ya da gün olsa mutlaka farklılık gösterir.
) 5 Adım Bir yıl boyunca belirli bir günün listesini alabilirsiniz. Örneğin her ilk günde bir denetim günü vardır. Monday bir hafta. İlk tarihini bilmek istiyorsun Monday her ay için. Bu kodu kullanabilirsiniz
- mycal = takvim.monthcalendar(2025, ay) ay için takvim oluşturacak
- Hafta1 ve hafta2 değişkenlerini takvimin Birinci ve ikinci haftasına ayarlayın
- 1. Haftanın içerip içermediğini kontrol edin Monday, denetim gününü ayarlayın
- Aksi halde denetim gününü ilk gün olarak ayarlayın Monday 2. haftada
- Çıktı ilkinin tarihini gösterir Monday o aya denk geliyor.
- Bu Cal nesnesinin uzunluğu, ayda kaç hafta olduğuna bağlı olarak belirli bir uzunluk olacaktır. Bizim durumumuzda ilk önce bir veya iki tane olacak Monday Haftanın ilk haftası çoğunlukla ilk hafta olacaktır, ancak değilse ikinci haftayı düşünün. Neden ikinci haftayı da ele aldığımızı ayrıntılı olarak görelim.
- Burada takvimin sabitini kullanıyoruz Monday, takvim nesnesi size Pazar gününü temsil eden sabitleri verir, Monday, Salı, vb. Bunları daha önce de gördük. Yani, eğer birinci haftada aşağıdakilerle temsil edilen gün Monday sabit 0'a eşit değildir, unutmayın sıfırlar başka bir aya ait günler anlamına gelir. Yani bu durumda, eğer sıfırsa, bu bir olacaktır. Monday bir önceki aya ait. Ama eğer ilk Monday 0'a eşit değilse, bu denetim günümün birinci hafta içinde olacağı anlamına gelir. Aksi takdirde, bu 0 ise, o zaman ilk Monday ayın ilk haftasında değil, ikincisinde olması lazım.
- O zaman tamam diyorum, denetim günü değişkenimi Monday İkinci Hafta tarafından temsil edilir. Yani denetim günü, birinci ya da ikinci haftanın günü ne olursa olsun geri gelecektir.
İşte kodun tamamı
Python 2 Örnek
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print str # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print str # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print i # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print name for day in calendar.day_name: print day # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print "%10s %2d" % (calendar.month_name[month], auditday)
Python 3 Örnek
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print(str) # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print(str) # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print(i) # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print(name) for day in calendar.day_name: print(day) # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print("%10s %2d" % (calendar.month_name[month], auditday))
ÖZET
- In Python, ayın başlayacağı günü değiştirebileceğiniz gibi takvimi istediğiniz şekilde biçimlendirebilirsiniz.
- Takvimi HTML formatında yazdırın
- Aylar veya hafta içi günler gibi verileri yerel sistemden alın
- Tüm yıl boyunca belirli bir günün listesini getir