2011-03-24 16 views
15
Ben yılın ilk ve son günü için date nesneleri almak gerekir

son/ilk gün için tarih nesnesini alın.yılın

Şu anda çalışıyor bu kodu kullanıyorum, ama bunu yapmak için güzel bir yol varsa merak ediyorum; Örneğin. ay/günü manuel olarak belirtmek zorunda kalmadan. akla gelen

from datetime import date 
a = date(date.today().year, 1, 1) 
b = date(date.today().year, 12, 31) 
+1

; Aslında, tarih aritmetiğini içeren alternatiflerden çok daha net ve dolayısıyla 'daha güzel'. –

+0

Bence bu senin alacağın gibi "güzel". Bu kod hakkında tam olarak neyi beğenmiyorsunuz? – NPE

+0

Aslında, sadece, örn. duymadığım bir ayın ilk/son günü. – ThiefMaster

cevap

12

tek gerçek iyileşme a ve b daha da değişkenler daha açıklayıcı ad vermektir.

+0

Bunlar sadece bir örnekti. Bu iki tarih nesnesini bir işlev çağrısında kullanıyorum. – ThiefMaster

+0

@ThiefMaster Yeterli. Tam olarak bulduğunuz kodun tam olarak ne olduğunu açıkladıysanız, iyi yanıtlar almanıza yardımcı olacağını düşünüyorum. – NPE

+2

Ayrıca, bugün() iki kez çağırmaya gerek yok, bir değişkende saklayın. –

1

Python kitaplığında hiçbir şey yoktur, ancak bu işlevselliği tamamlayan dış kütüphaneler vardır. Örneğin, pandas Yapabileceğiniz hangi bir timeseries kütüphane vardır: İstediğin yıl başlayacak ve yıl sonu işlevselliği ise pandas iken

from datetime import date 
from pandas.tseries import offsets 

a = date.today() - offsets.YearBegin() 
b = date.today() + offsets.YearEnd() 

overkill, aynı zamanda diğer üst düzey kavramları bir sürü için desteği vardır böyle iş günü, tatil takvimi, ay/çeyrek/yıl uzaklıklar olarak: Ben gerçekten manuel çözüm olarak çözümünüzü sınıflandırmak emin değilim http://pandas.pydata.org/pandas-docs/stable/timeseries.html#dateoffset-objects

1
from datetime import datetime 

starting_day_of_current_year = datetime.now().date().replace(month=1, day=1)  
ending_day_of_current_year = datetime.now().date().replace(month=12, day=31) 
+0

Bazı içerik veya açıklamalar gelecekte bu çözümü arayan kişilere yardımcı olabilir. – Toby

İlgili konular