Python-Bite steht für kleine Beispiel Python-Codehappen, die ein Befehl oder die Anwendung einer Library verdeutlichen. Heute geht es darum, wie Ihr den Wochentag eines Datums herausfindet.
Dafür gehen wir in mehreren Schritten vor. Als ersten setzen wir die lokalen Einstellungen auf deutsch, ansonsten bekommen wir nämlich die englischen Wochentage. Das geht mit dem Befehl
locale.setlocale(locale.LC_ALL, 'deu_deu')
Dann sagen wir dem Benutzer, dass er sein Geburtstag eingeben soll. Die Eingabe ist natürlich erstmal ein String, den wir in den Datumstyp umwandeln wollen. Hier bietet es sich an, eine Überprüfung zu machen, ob die Eingabe im richtigen Format ist, der Einfachheit halber lasse ich es aber weg.
Im nächten Schritt wollen wir den eingebenen String in ein Datum umwandeln. Hierzu nutzen wir die Library datetime, denn mit dem folgenden Befehl können wir das erreichen.
datetime.datetime.strptime(birthdate,'%d.%m.%Y').date()
So, nun haben wir also ein Datum und der Typ date liefert auch schon die passende Funktion weekday mit, d.h. mit birthday.weekday() bekommen wir den Wochentag geliefert. Allerdings nur als Zahl, welche wir noch in den Wochentag-Namen umwandeln wollen. Dafür ist die Library “calendar” geeignet. denn diese enthält das Array day_name. Wir suchen also aus dem Array einfach das Element an der Stelle der Wochentagszahl raus. Und das geht so:
calendar.day_name[birthday.weekday()]
Hier also nochmal der ganze Code zum direkt ausprobieren.
# -*- coding: utf-8 -*- """ Wochentag des Geburtstags @author: Holger """ import datetime import calendar import locale locale.setlocale(locale.LC_ALL, 'deu_deu') print('Hallo, wie heißt Du?') name = input() print('Hallo '+name) print('Bitte nenne mir Dein Geburtstag (TT.MM.JJJJ):') birthdate = input() #in Datumformat konvertieren birthday = datetime.datetime.strptime(birthdate,'%d.%m.%Y').date() print('Du bist an einem '+calendar.day_name[birthday.weekday()]+' geboren.')
Und jetzt experimentiert ein bisschen selber herum. Kommentiert mal die Zeile mit locale aus, etc.
Happy Coding,
Euer Holger