Gelişmiş Python Geliştirme Kursu
Bölüm
>
Seviye
Dize & Zaman Modülleri
Tarih/Saat Modülü
Hedef
Date & Time modülü fonksiyonlarını kullanarak kayıtları ayarlayın ve malzeme gönderim tarihlerini düzenleyin.
Yeni inşa alanının eklentisinin alt katı, yakın zamanda teslim edilen, paketlenmiş ve yeni inşaat çevresine gönderilmeye hazır malzemelerden bazılarını içeren bir depodur. Bu malzemelerin doğru tarih ve saatlerle etiketlenmesi ve daha önce uygulanmış etiketlerin ilgili tüm bilgileri içerdiğinden emin olunması gerekmektedir. Bunu yapmak için tarih ve saati elle yazıp biçimlendirmeye zaman harcayabiliriz, ancak date and time modülü kullanılarak çok daha hızlı bir yol vardır.
Date ve time modülü, import datetime yazarak içe aktarılır; bu, nesnelerde depolayabileceğiniz biçimlendirilmiş tarih ve saatleri okumanıza ve ayarlamanıza imkan veren güçlü fonksiyonların kilidini açar. Zaman dilimlerini ayarlamak için from datetime import timezone, timedelta de kullanabilirsiniz. Modül içe aktarılırken aşağıdaki fonksiyonlar kullanılabilir hale gelir:
datetime.datetime(): Tercih ettiğiniz bir zamanı ayarlamanızı ve depolamanızı sağlar, şu argümanları alır:year,month,day,hour,minute,second,microsecond,timezone. Tüm argümanları girmeniz gerekmez; yalnızca kullanmak istediğiniz argümanları girin.datetime.datetime.now(): Saatte göründüğü gibi kendi güncel tarih ve saatinizi döndürür.datetime.datetime.date(): Yalnızca tarih bilgisini döndürür, saat bilgisi içermez.datetime.datetime.time(): Yalnızca saat bilgisini döndürür, tarih bilgisi içermez.datetime.datetime.timestamp(): Tarih ve saatin zaman damgasını UNIX kodu olarak döndürür.timezone(): Tarih ve saat argümanlarınızla kullanmak üzere bir zaman dilimi ayarlamanızı sağlar.datetime.strftime(): Tarih ve saat bilgisinden belirli bilgileri çıkarmanızı ve belirli kodlar kullanarak istediğiniz biçime getirmenizi sağlar. Amacımız için aşağıdaki kodları kullanacağız:"%a": Hafta içi gününün kısaltması"%d": Ayın günü"%B": Ay ismi, tam olarak"%I": Saat, 12 saatlik döngü"%M": Dakika"%p": Meridian, AM/PM"%x": Yerel tarih formatı"%X": Yerel saat formatı"%j": Yılın günü"%U": Yılın haftası"%z": UTC zaman dilimi
Başlamak için, ışıklı X işaretine doğru yürüyün ve masaya bakın, read() fonksiyonunu kullanarak gönderiler için paketleme tarihlerini ve projelerin başlangıç ve bitiş tarihlerini kontrol edin. Belgedeki (ay/gün/yıl) olarak verilen başlangıç ve bitiş tarihlerini not edin. Memo'da yazılan ilk üç (3) veri noktası ve zaman dilimi, sonraki fonksiyonlarda kolaylık olması için kod editöründe önceden yazılmıştır.
Aynı alanda, today adında bir değişken oluşturun ve datetime.datetime.now() fonksiyonunun döndürdüğü değeri depolayın. Değeri okunabilir bir formata getirmek için str() kullanarak stringe dönüştürün; örneğin: today = str(datetime.datetime.now()). display() fonksiyonunu kullanarak memo'ya bugünün tarihini yazın. Böylece gönderim dağıtım tarihi ayarlanmış olacak ve gerekli alanlara eksik veri noktalarını eklemeye başlayabilirsiniz.
Masaya yakın altın X işaretine doğru yürüyün; burada bu projenin kaç gün süreceğini hesaplayıp yazacağız. Editörde start ve end adında iki değişken vardır ve bunlar datetime değerlerini depolar. Daha önce okuduğunuz başlangıç ve bitiş tarihlerini belirtilen boşluklara yazın. result adında bir değişken oluşturun ve end ile start değişkenleri arasındaki çıkarımın sonucunu buraya depolayın. Değeri okunabilir bir string formata dönüştürmek için str() kullanın; örneğin: result = str(end-start). write() fonksiyonunu kullanarak bu değişkeni yazarak işin süresini not edin.
Buradan, kırmızı halıdaki X işaretlerinin yanındaki altın X işaretine doğru yürüyün; sol sütundaki kırmızı halı sandıklarının yanındaki X işaretlerine ineceğiz. Burada, sandıklarda eksik olan paketleme tarihlerinin belirli parçalarını datetime() kullanarak ekleyeceğiz. Editörde, red_date değişkenine önceden atanmış bir tarih bulunacaktır; bu tarih üzerinden çeşitli veri parçalarını çıkartıp sandıkları etiketlemek için kullanacağız.
Kırmızı halılar için:
-
Altın X işaretinde, sandıklara bakın ve
red_daysadında bir değişken oluşturun;red_datedeğişkenindendate()kullanarak tarihi, saat bilgisini içermeden alın ve bunustr()ile stringe dönüştürün; örneğin:red_days = str(red_date.date()).write()fonksiyonunu kullanarak sandıklarıred_daysile etiketleyin. -
Işıklı X işaretinde, sandıklara bakın ve
red_timeadında bir değişken oluşturun;red_datedeğişkenindentime()kullanarak saat bilgisini, tarih bilgisinden ayırın ve bunustr()ile stringe dönüştürün; örneğin:red_time = str(red_date.time()).write()fonksiyonunu kullanarak sandıklarıred_timeile etiketleyin. -
Koyu X işaretinde, sandıklara bakın ve
red_timestampadında bir değişken oluşturun;red_datedeğişkeninden hesaplanan zaman damgasını depolayın; örneğin:red_timestamp = red_date.timestamp().write()fonksiyonunu kullanarak sandıklarıred_timestampile etiketleyin.
Bunu takiben, mavi halı sandıklarının önündeki X işaretlerine geçeceğiz. Önceden yazılmış blue_date değişkenine referans veren üç (3) renkli X işareti dizisi var; etiketleri tamamlamak için. Sütun boyunca ilerleyin ve gönderi etiketlerine eksik olan öğeleri eklemek için strftime() fonksiyonunu kullanın. Önceki fonksiyonlardan farklı olarak, bu fonksiyon hedef tarihten öğeleri çıkarmak ve biçimlendirmek için belirli bir koda ihtiyaç duyar. Örneğin, blue_date değişkeni için haftanın gününü almak istiyorsak, strftime() fonksiyonu ile "%a" kodunu şu şekilde kullanırsınız: blue_date.strftime("%a").
Mavi halı sandıklarının yanındaki X işaretleri için, gerekli olan belirli kodu kullanarak strftime() fonksiyonunu uygulayın. Gereksinimlere göre daha önce belirtilen kod listesini inceleyin. Mavi halılar için:
-
Altın X işaretinde, sandıklara bakın ve
blue_weekdayadında bir değişken oluşturun;blue_datedeğişkenindenstrftime()kullanarak haftanın gününü şu şekilde alın:blue_day = blue_date.strftime("%a"). Ardından,blue_datedeğişkenindenstrftime()kullanarak ayın gününü depolayanblue_dayadında başka bir değişken oluşturun. Son olarak,blue_datedeğişkenindenstrftime()kullanarak ayın ismini, tam olarak depolayanblue_monthadında bir değişken oluşturun. Öntanımlıwrite()fonksiyonunablue_weekday,blue_dayveblue_monthdeğişkenlerini ekleyin. -
Işıklı X işaretinde, sandıklara bakın ve
blue_houradında bir değişken oluşturun;blue_datedeğişkenindenstrftime()kullanarak saat, 12 saatlik döngü bilgisini depolayın. Ardından,blue_datedeğişkenindenstrftime()kullanarak dakikayı depolayanblue_minuteadında başka bir değişken oluşturun. Son olarak,blue_datedeğişkenindenstrftime()kullanarak Meridian, AM/PM bilgisini depolayanblue_meridianadında bir değişken oluşturun. Öntanımlıwrite()fonksiyonunablue_hour,blue_minuteveblue_meridiandeğişkenlerini ekleyin. -
Koyu X işaretinde, sandıklara bakın ve
blue_local_dateadında bir değişken oluşturun;blue_datedeğişkenindenstrftime()kullanarak yerel tarih formatını depolayın. Ardından,blue_datedeğişkenindenstrftime()kullanarak yerel saat formatını depolayanblue_local_timeadında başka bir değişken oluşturun. Öntanımlıdisplay()fonksiyonunablue_local_date,blue_local_timeveblue_meridiandeğişkenlerini ekleyin.
Son olarak, yeşil halının yanındaki altın X işaretine geçeceğiz ve sağ sütundaki yeşil halı sandıklarının yanındaki X işaretlerine ineceğiz. Burada, sandıklarda eksik olan paketleme tarihlerinin belirli parçalarını strftime() kullanarak eklemeye devam edeceğiz. Editörde, green_date değişkenine önceden atanmış bir tarih bulunacaktır; bu tarihten çeşitli veri parçalarını çıkarıp sandıkları etiketlemek için kullanacağız.
Yeşil halılar için:
-
Altın X işaretinde, sandıklara bakın ve
green_dayadında bir değişken oluşturun;green_datedeğişkenindenstrftime()kullanarak yılın gününü depolayın.write()fonksiyonunu kullanarak sandıklarıgreen_dayile etiketleyin. -
Işıklı X işaretinde, sandıklara bakın ve
green_weekadında bir değişken oluşturun;green_datedeğişkenindenstrftime()kullanarak yılın haftasını depolayın.write()fonksiyonunu kullanarak sandıklarıgreen_weekile etiketleyin. -
Koyu X işaretinde, sandıklara bakın ve
green_timezoneadında bir değişken oluşturun;green_datedeğişkenindenstrftime()kullanarak UTC zaman dilimini depolayın.write()fonksiyonunu kullanarak sandıklarıgreen_timezoneile etiketleyin.
Tüm renkli halıların yanındaki X işaretlerine etiketler eksiksiz bir şekilde yazıldığında, seviye tamamlanmış olacaktır.