Gelecek Cuma gününü nasıl hesaplayabileceğimi bilmem gerekiyor mu? Python'a yeni geliyorum :)Python'da gelecek Cuma nasıl hesaplanır?
Teşekkürler!
Gelecek Cuma gününü nasıl hesaplayabileceğimi bilmem gerekiyor mu? Python'a yeni geliyorum :)Python'da gelecek Cuma nasıl hesaplanır?
Teşekkürler!
Eğer datetime
kütüphane gerekir, Başlamak için: Sonra
import datetime
bir başlangıç tarihine gerek; bu, bugün.
d = datetime.date.today()
Oradan başlayarak, Cuma'ya ulaşıncaya kadar devam etmek isteyeceksiniz. date.weekday
yöntem böylece, ile 6 0 olarak Pazar'a Pazartesi temsil eder: gunlerden cuma değilse
while d.weekday() != 4:
, bir seferde bir gün, bir tane eklemek gerekecek. date
nesnesine bir zaman aralığı eklemek için timedelta
nesnesini kullanın.
d += datetime.timedelta(1)
Hepsini bir araya getirin ve
d
sonuçta önümüzdeki Cuma temsil eden bir
date
nesneyi içerecektir. Bugün Cuma ise, bu kodun bugün üreteceğini unutmayın; Bunun yerine eğer yerine gelecek Cuma üretmek için tweak yapabilirsiniz. cevap taymon`s @ üzerinde
Teşekkür ederiz! Çok yardımcı olan – KennyPowers
@rolikoff FYI, size yardımcı olacak bir yanıt aldığınızda, onay işaretini tıklatarak kabul edebilirsiniz ([faq # howtoask] 'a bakın). – Taymon
@ ugoren'ın yanıtı (yorumlarda önerilen değişiklikle birlikte) kesinlikle daha iyi –
belli bir gelişme:
today = datetime.date.today()
friday = today + datetime.timedelta((4-today.weekday()) % 7)
4 (esaslı 0, Pazartesi sayma) Cuma günü hafta içi olduğunu.
((4-today.weekday()) % 7)
, bir sonraki Cuma gününe kadar geçen gün sayısıdır (%
her zaman negatif değildir).
@ ubuntu'nun cevabını gördükten sonra, iki şey eklemeliyiz:
1. Cuma = 4 evrensel olarak doğru olup olmadığından emin değilim. Bazı insanlar haftalarını Pazar günü başlatır.
2. Cuma günü, bu kod aynı gün geri döner. Sonrakini almak için (3-today.weekday())%7+1
'u kullanın. Sadece eski x%n
- ((x-1)%n)+1
dönüşümü. İşte
['weekday()'] kullanıldığında Cuma her zaman 4'tür (http://docs.python.org/library/datetime.html#datetime .date.weekday) yöntemi. ['Isoweekday()'] (http://docs.python.org/library/datetime.html#datetime.date.isoweekday) yöntemi, Cuma gününe kadar 5 olarak Cuma gününü verir, çünkü pazartesiden Pazar gününe kadar 1 ile 7 arası işlem yapar. – Taymon
'içe aktarma takvimi' eklemeyi düşünmüyorsanız '4' yerine 'calendar.FRIDAY' kullanabilirsiniz. – lumbric
sen dateutil kullanarak bunu nasıl bağlıdır: (. days = 1
argüman durumda today
yılında "önümüzdeki Cuma" today
aynı değildir olmasını sağlar Cuma olur)
import datetime as DT
import dateutil.relativedelta as REL
today = DT.date.today()
print(today)
# 2012-01-10
rd = REL.relativedelta(days=1, weekday=REL.FR)
next_friday = today + rd
print(next_friday)
# 2012-01-13
Bu ev ödevi mi? –
Hayır :) sadece nasıl yapılacağını en iyi şekilde bilmek istiyorum. Biliyorum, dateutil'in bunu yapmasına yardımcı olabileceği gibi bir şey var, ama bunu kullanmaya değmeyecek ya da değil – KennyPowers
Neden insanlar her zaman ödev olup olmadığını soruyorlar? Tekrarlanır; Ne fark eder ki? – HexTree