Coding for KidsCoding for Kids
Yaratıcı SeviyelerZorluklarÖğretmen Kılavuzu
Özellikler için oy verin
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_days adında bir değişken oluşturun; red_date değişkeninden date() kullanarak tarihi, saat bilgisini içermeden alın ve bunu str() ile stringe dönüştürün; örneğin: red_days = str(red_date.date()). write() fonksiyonunu kullanarak sandıkları red_days ile etiketleyin.

  • Işıklı X işaretinde, sandıklara bakın ve red_time adında bir değişken oluşturun; red_date değişkeninden time() kullanarak saat bilgisini, tarih bilgisinden ayırın ve bunu str() ile stringe dönüştürün; örneğin: red_time = str(red_date.time()). write() fonksiyonunu kullanarak sandıkları red_time ile etiketleyin.

  • Koyu X işaretinde, sandıklara bakın ve red_timestamp adında bir değişken oluşturun; red_date değişkeninden hesaplanan zaman damgasını depolayın; örneğin: red_timestamp = red_date.timestamp(). write() fonksiyonunu kullanarak sandıkları red_timestamp ile 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_weekday adında bir değişken oluşturun; blue_date değişkeninden strftime() kullanarak haftanın gününü şu şekilde alın: blue_day = blue_date.strftime("%a"). Ardından, blue_date değişkeninden strftime() kullanarak ayın gününü depolayan blue_day adında başka bir değişken oluşturun. Son olarak, blue_date değişkeninden strftime() kullanarak ayın ismini, tam olarak depolayan blue_month adında bir değişken oluşturun. Öntanımlı write() fonksiyonuna blue_weekday, blue_day ve blue_month değişkenlerini ekleyin.

  • Işıklı X işaretinde, sandıklara bakın ve blue_hour adında bir değişken oluşturun; blue_date değişkeninden strftime() kullanarak saat, 12 saatlik döngü bilgisini depolayın. Ardından, blue_date değişkeninden strftime() kullanarak dakikayı depolayan blue_minute adında başka bir değişken oluşturun. Son olarak, blue_date değişkeninden strftime() kullanarak Meridian, AM/PM bilgisini depolayan blue_meridian adında bir değişken oluşturun. Öntanımlı write() fonksiyonuna blue_hour, blue_minute ve blue_meridian değişkenlerini ekleyin.

  • Koyu X işaretinde, sandıklara bakın ve blue_local_date adında bir değişken oluşturun; blue_date değişkeninden strftime() kullanarak yerel tarih formatını depolayın. Ardından, blue_date değişkeninden strftime() kullanarak yerel saat formatını depolayan blue_local_time adında başka bir değişken oluşturun. Öntanımlı display() fonksiyonuna blue_local_date, blue_local_time ve blue_meridian değ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_day adında bir değişken oluşturun; green_date değişkeninden strftime() kullanarak yılın gününü depolayın. write() fonksiyonunu kullanarak sandıkları green_day ile etiketleyin.

  • Işıklı X işaretinde, sandıklara bakın ve green_week adında bir değişken oluşturun; green_date değişkeninden strftime() kullanarak yılın haftasını depolayın. write() fonksiyonunu kullanarak sandıkları green_week ile etiketleyin.

  • Koyu X işaretinde, sandıklara bakın ve green_timezone adında bir değişken oluşturun; green_date değişkeninden strftime() kullanarak UTC zaman dilimini depolayın. write() fonksiyonunu kullanarak sandıkları green_timezone ile etiketleyin.

Tüm renkli halıların yanındaki X işaretlerine etiketler eksiksiz bir şekilde yazıldığında, seviye tamamlanmış olacaktır.

Kod Kitabı