time modülüne benzeyen ancak daha kapsamlı olan datetime modülünün date fonksiyonunu ele alacağız. Ancak burada daha çok OOP yapısı mevcut olduğu için ilk seferde kolayca anlamanız kolay olmayabilir. OOP konusuna geldiğimiz zaman her şey daha net oturacaktır. Şimdi, bunu import ediyorum.

Burada şu anki tarihi yazdırmak oldukça basittir. Direkt olarak date.today() diyoruz ve olay bitiyor.

Bu noktada today (bugün) fonksiyonuna day (gün), month (ay) ve year (yıl) nitelikleri atanmış oldu. Dolayısıyla sadece day verisini çekmek istersek date.day() yazmak yerine bugun.day şeklinde bir kullanım yapmamız gerekir. Dediğim gibi şu an bunu tam olarak anlamanıza gerek yok; sadece nasıl yapıldığına bakın ve uygulamayı asla ihmal etmeyin.

Gördüğünüz gibi olay artık date.today()'den çıktı, değişkene (bugun) gitti.
Şimdi, biraz ilginç bir yere değinelim.

Bugün günlerden perşembe. Buradaki weekday ifadesinde index mantığı vardır. Dolayısıyla saymaya 0'dan başlayacaktır yani pazartesi günü onun için sıfırıncı gündür:
Pazartesi: 0
Salı: 1
Çarşamba: 2
Perşembe: 3
Bu yüzden çıktı kısmında 3 rakamın görüyorsunuz. Altındaki isoweekday ifadesinde ise index mantığı yoktur. Yani pazartesi günü onun için birinci gündür.
Pazartesi: 1
Salı: 2
Çarşamba: 3
Perşembe: 4
Bu yüzden ikinci kısımda da 4 rakamını görüyorsunuz. Bu ikisi arasında işte böyle ufak bir fark mevcut.
date fonksiyonuna belli, sabit bir tarih de verebilirsiniz. Örneğin iki tarih arasında kaç gün olduğunu bulmak isterseniz bunu kullanabilirsiniz. Hatta isterseniz yapalım.

date() dedikten sonra istediğiniz tarihi yıl/ay/gün formatında yazmalı ve bunları birbirinden virgül ile ayırmalısınız. 06/07/2017 tarihinden bugüne kadar 1967 gün geçmiş.
from datetime import date ifadesinin alternatifini de görelim. Bu sefer; from datetime import datetime yazıyoruz. Bu noktada datetime.now() ifadesi bize bugünün tarihini verecektir. Ancak date.today() ifadesine ek olarak saati de yazdıracaktır.

Ben, datetime.now() ifadesini rightNow isimli bir değişkene atamışım. Bu noktada rightNow.day() tarzında işlemleri de gerçekleştirebiliriz.

Peki, madem saati de gösteriyor; o zaman hour (saat), minute (dakika) ve second (saniye) değerlerini alabilir miyiz?
Neden olmasın?

Elbette, sadece tarih bilgisini almak isteyebilirsiniz:

Zaman (saat) bilgisini almak isterseniz de time yazmanız yeterli olacaktır.

Bir önceki blogda gördüğünüz tarih formatlama işlemlerini buradan da yapabilirsiniz.

İsterseniz biraz daha ilginç bir fonksiyon olan timedelta'ya bakalım. Bununla, gelecek veya geçmiş adına işlemleri kolayca yapabilirsiniz. Bunun için from datetime import timedelta demem yeterli olacaktır.

İlk önce rightNow ile şu anki tarihi aldım. Hemen sonrasında future = timedelta(...) ile gelecek bir tarih belirledim. Oradaki parametrelerin anlamını artık biliyorsunuz. Sonrasında rightNow ile future değişkenlerinin tuttuğu değişken değerlerini topladım.
Burada aslında şunu dedim: "Şu andan 7 gün, 8.5 saat, 45 saniye sonraki tarih ne olur?". Çıktı kısmında da bunun doğru sonuç verdiğini görebilirsiniz. Çıktı kısmının yıl/ay/gün şeklinde olduğunu unutmayalım.
Bir önceki blog ile şu anki blog içerisinde işlenenler ve datetime içerisindeki date, datetime, timedelta içerisindeki şeyler gayet benzerdir ve öğrenmesi kolaydır. Yalnızca bol bol pratik yapmanız ve basit de olsa uygulama geliştirmeye çalışmanız lazım. Zaten biz de bir şeyler yapacağız. Sevgiler.
Yayınlanma Tarihi: 2022-11-24 01:18:25
Son Düzenleme Tarihi: 2022-11-25 18:29:39