Çözüldü Datetime modülü kullanımı

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Ark_Us

Kilopat
Katılım
7 Nisan 2017
Mesajlar
849
Makaleler
1
Çözümler
7
Herkese merhaba, ben bu modülü Visual Studio code nasıl kullanabilirim, detaylı biçimde anlatabilir misiniz? Hiçbir bilgim olmadığı bir konu.
 
Çözüm
TimeDelta'ya ihtiyacınız var gibi. Aracın trafiğe çıkış tarihi üzerine 1 yıl (365 gün) ekleyerek bakım tarihlerini bulabilirsiniz.
Python:
from datetime import datetime, timedelta
birinciBakim = tafigeCikisTarihi + timedelta(days = 365)

bunu bir for döngüsü içerisinde alıp timedelta(days = ((i+1) * 365)) şeklinde de kullanabilirsiniz. Böylece neredeyse aynı kod satırını 3 kez yazmamış olursunuz.
araçtrafıgeçıkma = int(input("aracın trafige çıkış tarihi: "))
ValueError: invalid literal for int() with base 10: '2018/8/1'
"2018/8/1" ifadesi tam sayıya dönüştürülemeceği için. Öncelikle anlamlı parçalara bölüp(Yıl, ay, gün).
Ayrılan verileri tek tek int'e çekmeniz gerekiyor.
"split" methodunu araştırın aradığınız cevabı bulacaksınız.
Python:
# Psudo kod gibi yazıyorum. O yüzden çalışmaya bilir.

# Değişken isimlerinde Türkçe karakter kullanmamaya özen gösterin.
aracTrafikCikis = input('Aracın trafiğe çıkış tarihini girin->')
aracTrafikCikis = aracTrafikCikis.trim().split("/") #Trim başta ve sondaki White Spaceleri kırpar.
# Anlaşılması kolay olsun diye ayrı ayrı değişkenlere ayırdım ancak direkt date() methodunun içerisine de yazılabilirdi
# dtArac = dt.date(int(aracTrafikCikis[0]), int(aracTrafikCikis[1]), int(aracTrafikCikis[2])) # gibi
yil = int(aracTrafikCikis[0])
ay = int(aracTrafikCikis[1])
gun = int(aracTrafikCikis[2])
dtArac = dt.date(yil, ay, gun)
# Buradan sonra deltaTime vs ile sorunun çözümüne devam edilebilir

@Ark_Us
Konu ÇÖZÜLDÜ olarak işaretlendiği için bana bildirim gelmiyor. Cevap yazarken etiketlerseniz daha kolay fark edebilirim.
 
"2018/8/1" ifadesi tam sayıya dönüştürülemeceği için. Öncelikle anlamlı parçalara bölüp(yıl, ay, gün).
Ayrılan verileri tek tek Int'e çekmeniz gerekiyor.
"Split" methodunu araştırın aradığınız cevabı bulacaksınız.
Python:
# Psudo kod gibi yazıyorum. O yüzden çalışmaya bilir.

# Değişken isimlerinde Türkçe karakter kullanmamaya özen gösterin.
aracTrafikCikis = input('Aracın trafiğe çıkış tarihini girin->')
aracTrafikCikis = aracTrafikCikis.trim().split("/") #Trim başta ve sondaki White Spaceleri kırpar.
# Anlaşılması kolay olsun diye ayrı ayrı değişkenlere ayırdım ancak direkt date() methodunun içerisine de yazılabilirdi.
# dtArac = dt.date(int(aracTrafikCikis[0]), int(aracTrafikCikis[1]), int(aracTrafikCikis[2])) # gibi.
yil = int(aracTrafikCikis[0])
ay = int(aracTrafikCikis[1])
gun = int(aracTrafikCikis[2])
dtArac = dt.date(yil, ay, gun)
# Buradan sonra deltaTime vs ile sorunun çözümüne devam edilebilir

@Ark_Us
Konu çözüldü olarak işaretlendiği için bana bildirim gelmiyor. Cevap yazarken etiketlerseniz daha kolay fark edebilirim.

Cevabınız için teşekkürler videonun geri kalnıı izleyerek cevabı öğrendim sizin cevabınız ile ciddi fark var gerçe hata az benede ben en fazla koşul ifadelerini biliyorum sonrasını bikmiyorum demeliydin cevap buraya atıyorum.

Python:
import datetime.

tarıh = (input("aracın trafige çıkış tarihi(2019/8/1): "))
tarıh = tarıh.split("/")
# print(tarıh[0])
# print(tarıh[1])
# print(tarıh[2])

trafıgecikis = datetime.datetime(int(tarıh[0]),int(tarıh[1]),int(tarıh[2]))
simdi = datetime.datetime.now()
fark = simdi - trafıgecikis.
araçtrafıgeçıkma = fark.days.

if araçtrafıgeçıkma <= 365:
print("birnci bakım")
elif araçtrafıgeçıkma > 365 and araçtrafıgeçıkma <= 365*2:
print("ikinci bakım")
elif araçtrafıgeçıkma > 365 and araçtrafıgeçıkma <= 365*3:
print("üçüncü bakım")
else:
print("hatalı bilgi")
@The Anorak
 

Yeni konular

Geri
Yukarı