Hej Leute,

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

Datenanalyse mit Python - 5 Tage Minikurs
In dem kostenlosen 5-Tage Minikurs Datenanalyse mit Python analysieren wir zusammen einen realen Datensatz: Von der richtigen Entwicklungsumgebung über erste Zusammenfassungsstatistiken mit pandas bis hin zu linearer Regression und schicken Grafiken mit seaborn.