init taschenrechner and calendar
This commit is contained in:
+47
@@ -0,0 +1,47 @@
|
||||
#Kalender.py
|
||||
import calendar
|
||||
from datetime import date
|
||||
|
||||
month_name = ["Januar", "Februar", "Maerz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
|
||||
|
||||
# Definition Schaltjahr
|
||||
def leap_year(year):
|
||||
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
|
||||
|
||||
# Definition Anzahl Tage pro Monat
|
||||
def days_leap_day(year, month):
|
||||
days_per_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
|
||||
days = days_per_month[month - 1]
|
||||
if month == 2 and leap_year(year):
|
||||
days += 1
|
||||
return days
|
||||
|
||||
# Calculate the calendar week number (ISO 8601)
|
||||
def calendar_week(year, month, day):
|
||||
d = date(year, month, day)
|
||||
return d.isocalendar()[1]
|
||||
|
||||
# Definition Ausgabe
|
||||
def calender(year):
|
||||
for m in range(1, 13):
|
||||
print(f"{month_name[m-1]} {year}".center(28))
|
||||
print("KW MO DI MI DO FR SA SO")
|
||||
|
||||
month_calendar = calendar.monthcalendar(year, m)
|
||||
for week in month_calendar:
|
||||
# Check if the week contains days from the current month
|
||||
if all(day == 0 for day in week):
|
||||
continue
|
||||
|
||||
# Get the correct week number
|
||||
week_num = calendar_week(year, m, next(day for day in week if day != 0))
|
||||
print(f"{week_num:2}", end=" ")
|
||||
for day in week:
|
||||
if day == 0:
|
||||
print(" ", end="")
|
||||
else:
|
||||
print(f"{day:2} ", end="")
|
||||
print()
|
||||
print()
|
||||
|
||||
calender(2024)
|
||||
Reference in New Issue
Block a user