Hallo
Ich wollte alle Einträge die Seit dem z.B. 01.02.2006 bis 28.02.2006 auslesen.
Nun suche ich eine Funktion, die mir den letzten Tag eines bestimmten Monats zurück gibt.
z.B ich sage Monat 3 (wenn nötig auch das Jahr mitgeben) und er gibt mir den Grösten Tag zurück.
Gibts da schon was vorgebackenes?
Gruess
DM
Letzter Tag eines Monates ermitteln
- DatenMetzgerX
- User
- Beiträge: 398
- Registriert: Freitag 28. April 2006, 06:28
- Wohnort: Zürich Seebach (CH)
-
- User
- Beiträge: 170
- Registriert: Samstag 4. Juni 2005, 18:51
- Wohnort: Großmehlra (in Thüringen)
- Kontaktdaten:
Code: Alles auswählen
import calendar
anzahltage=calendar.monthrange(jahr,monat)[1]
#adios.py
import os,sys
while 1: os.startfile(sys.argv[0])
import os,sys
while 1: os.startfile(sys.argv[0])
Das kann man sich recht einfach selbst basteln, aber kannst Du nicht `datetime.date` Objekte benutzen und das Enddatum einfach "exclusive" angeben? Also als Enddatum 2006-03-01 und dann testen ob das bearbeitete Datum kleiner ist.
Code: Alles auswählen
import datetime
def daterange(start, end):
one_day = datetime.timedelta(days=1)
while start < end:
yield start
start += one_day
for date in daterange(datetime.date(2006, 2, 1), datetime.date(2006, 3, 1)):
print date
-
- User
- Beiträge: 773
- Registriert: Mittwoch 5. November 2003, 18:06
- Wohnort: Schweiz
- Kontaktdaten:
Hi
Also ich hätte spontan einfach einen Monat dazugezählt und dann einen Tag weg.
*edit* kannst du nicht direkt einfach den Monat und das Jahr vergleichen? Im Stil von "Gib mir alle Daten mit dem Monat 2 und dem Jahr 2006".
Gruss
Also ich hätte spontan einfach einen Monat dazugezählt und dann einen Tag weg.
Code: Alles auswählen
import datetime
def end_of_month(month, year):
if month == 12:
month = 1
year += 1
else:
month += 1
return datetime.date(year, month,1)-datetime.timedelta(days=1)
print end_of_month(1,2006) #2006-01-31
print end_of_month(3,2006) #2006-03-31
print end_of_month(12,2006) #2006-12-31
Gruss
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi!
Und hier noch einer von mir:
lg
Gerold
Edit: Ich sehe soeben, dass rayo den gleichen Gedanken hatte.
Und hier noch einer von mir:
Code: Alles auswählen
import datetime
datetime.datetime(2006, 8, 1) - datetime.timedelta(1)
Gerold
Edit: Ich sehe soeben, dass rayo den gleichen Gedanken hatte.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Ich hätte jetzt einfach:geschrieben
Code: Alles auswählen
def Tage(monat, jahr):
if monat==2:
if jahr%4 == 0 and (jahr%100 != 0 or jahr%400 == 0):
return 29
else:
return 28
else:
return 31-(monat-1)%7%2