Python'da Dinamik Olarak HTML Takvimi Oluşturma

click fraud protection

Python en takvim modül standart kütüphanenin bir parçasıdır. Bir takvimin aya veya yıla göre çıktısına izin verir ve takvimle ilgili diğer işlevleri de sağlar.

takvim modülün kendisi datetime modülüne bağlıdır. Ama aynı zamanda ihtiyacımız olacak datetime daha sonra kendi amaçlarımız için, her ikisini de içe aktarmak en iyisidir. Ayrıca, bazı dize bölme yapmak için, yeniden modülü. Hepsini bir seferde içe aktaralım.

Varsayılan olarak, takvimler haftaya Avrupa sözleşmesine göre Pazartesi (gün 0) ile başlar ve Pazar (gün 6) ile biter. Pazar gününü haftanın ilk günü olarak tercih ediyorsanız, setfirstweekday () aşağıdaki gibi varsayılan değeri 6. güne değiştirme yöntemi:

İkisi arasında geçiş yapmak için haftanın ilk gününü sys modülü. Daha sonra değeri bir Eğer ifadesini ayarlayın ve setfirstweekday () buna göre yöntem.

Takvimimizde, "Python Tarafından Oluşturulmuş Takvim ..." gibi bir şey okuyan ve geçerli ay ve yılı içeren takvim için bir başlık olması iyi olurdu. Bunu yapmak için, ay ve yılı sistemden almamız gerekir. Bu işlevsellik,

instagram viewer
takvim sağlar, Python ay ve yıl alabilirsiniz. Ama hala bir sorunumuz var. Tüm sistem tarihleri ​​sayısal olduğundan ve ayların kısaltılmamış veya sayısal olmayan biçimlerini içermediğinden, bu ayların bir listesine ihtiyacımız vardır. Listeye girin yıl.

Şimdi bir ayın sayısını aldığımızda, bu sayıya (eksi bir) listeden erişebilir ve tam ay adını alabiliriz.

Merakla, datetime modülünde bir datetime sınıf. Bu sınıfa iki nesne diyoruz: Şimdi () ve tarihi (). Yöntem datetime.datetime.now () şu bilgileri içeren bir nesne döndürür: yıl, ay, tarih, saat, dakika, saniye ve mikrosaniye. Tabii ki zaman bilgisine ihtiyacımız yok. Tarih bilgisini tek başına kaldırmak için, Şimdi () için datetime.datetime.date () bir tartışma olarak. Sonuç şu ki bugün artık yıllara, tire işaretleriyle ayrılmış yıl, ay ve tarihi içermektedir.

Bu veri parçasını daha yönetilebilir parçalara bölmek için onu bölmeliyiz. Daha sonra parçaları değişkenlere atayabiliriz current_yr, içinde bulunduğumuz ay, ve bugün sırasıyla.

Bu kodun ilk satırını anlamak için sağdan sola ve içeriden dışarıya doğru çalışın. İlk olarak, nesneyi dizgi yapıyoruz bugün üzerinde bir dize olarak çalışmak için. Ardından, em-dash'i bir sınırlayıcı veya belirteç olarak böldük. Son olarak, bu üç değeri 'güncel' listeye atarız.

Bu değerlerle daha belirgin bir şekilde ilgilenmek ve mevcut ayın uzun adını yıl, ayın numarasını current_no. Daha sonra altyazısında biraz çıkarma yapabiliriz. yıl ve ayın adını içinde bulunduğumuz ay.

Bir sonraki satırda biraz ikame gerekli. Gönderildiği tarih datetime ayın ilk dokuz günü için bile iki basamaklı bir değerdir. Sıfır, yer tutucu olarak işlev görür, ancak takvimimizin yalnızca tek bir basamağı olmasını tercih ederiz. Bu nedenle, bir dizeyi başlatan her sıfır için hiçbir değer kullanmayız (dolayısıyla '\ A'). Sonunda yılı current_yr, yol boyunca bir tamsayıya dönüştürme.

Daha sonra arayacağımız yöntemler, tamsayı formatında girdi gerektirir. Bu nedenle, tüm tarih verilerinin dize değil, tamsayı biçiminde kaydedilmesini sağlamak önemlidir.

Takvimi yazdırmadan önce,HTML takvimimiz için başlangıç ​​eki ve CSS düzeni. Takvim için CSS ve HTML önsözünü yazdırmak üzere kod için bu sayfaya gidin. ve kodu program dosyanıza kopyalayın. Bu dosyanın HTML'sindeki CSS, About Web Tasarım Kılavuzu Jennifer Kyrnin tarafından sunulan şablonu takip eder. Kodun bu bölümünü anlamadıysanız, CSS ve HTML öğrenmek için yardımına danışmak isteyebilirsiniz. Son olarak, ay adını özelleştirmek için aşağıdaki satıra ihtiyacımız var:

Artık temel düzen çıktısına göre, takvimin kendisini ayarlayabiliriz. Bir takvim, en temel noktasında bir tablodur. Şimdi HTML'de bir tablo yapalım:

Şimdi asıl takvimi yaratmamız gerekiyor. Gerçek takvim verilerini almak için, takvim modül en MonthCalendar () yöntem. Bu yöntem iki argüman alır: istenen takvimin yılı ve ayı (her ikisi de tamsayı biçiminde). Her hafta ayın tarihlerinin listelerini içeren bir liste döndürür. Dolayısıyla, iade edilen değerdeki öğe sayısını sayarsak, belirtilen aydaki hafta sayısını alırız.

Aydaki hafta sayısını bilerek, için sayılan bir döngü Aralık() 0'dan hafta sayısına kadar. Olduğu gibi, takvimin geri kalanını yazdırır.

Bu aralık başlatıldıktan sonra, haftanın tarihleri ay sayacın değerine göre ve hafta. Ardından, takvim tarihlerini tutmak için tablo şeklinde bir satır oluşturulur.

bir için döngü daha sonra analiz edilebilmeleri için haftanın günleri boyunca yürür. takvim modülü, tablodaki geçerli bir değere sahip olmayan her tarih için bir '0' yazdırır. Boş bir değer bizim amaçlarımız için daha iyi çalışır, bu nedenle tablo tarihleri ​​için yer imleri bu tarihler için bir değer olmadan yazdırırız.

Sonra, eğer gün geçerli ise, bir şekilde vurgulamalıyız. Göre td sınıf bugün, bu sayfanın CSS değeri mevcut tarihin diğer tarihlerin açık arka planı yerine karanlık bir arka plana dönüştürülmesine neden olur.

Son olarak, tarih geçerli bir değer ve geçerli tarih değilse, tablo halinde veri olarak yazdırılır. Bunlar için kesin renk kombinasyonları CSS stili giriş bölümünde düzenlenir.

Sadece bu basit takvim, bir takvim gösterimi gerektiren herhangi bir şekilde kullanılabilir. HTML'deki tarihler arasında köprü oluşturarak, kolayca günlük işlevi oluşturulabilir. Alternatif olarak, bir günlük dosyasına karşı kontrol edilebilir ve daha sonra hangi tarihlerin renklerine göre alındığını yansıtabilir. Veya bu program bir CGI betiğine dönüştürülürse, program anında oluşturulabilir.

instagram story viewer