Die Version aus dem Beitrag passt aber nicht auf Anhieb. Da wurde kein "Eltern-Item" time verwendet, in der Betriebsstundenberechung hier aber schon. Da bin ich gestern nacht auch drüber gestolpert und hab den Fehler eben erst entdeckt.
Eine der beiden Seiten muss angepasst werden.
Hier sind meine angepassten Dateien, so dass "Time" als oberstes Item steht. Dann sieht es auch im Backend etwas aufgeräumter aus.
time.conf
zeit.py
Eine der beiden Seiten muss angepasst werden.
Hier sind meine angepassten Dateien, so dass "Time" als oberstes Item steht. Dann sieht es auch im Backend etwas aufgeräumter aus.
time.conf
Code:
[time] [[month]] [[[since]]] [[[[year]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.month.since.year eval = str(sh.time.month.since.year()) + 'm' [[[until]]] [[[[year]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.month.until.year eval = str(sh.time.month.until.year()) + 'm' [[week]] [[[since]]] [[[[month]]]] type = num [[[[year]]]] type = num [[[until]]] [[[[month]]]] type = num [[[[year]]]] type = num [[day]] [[[since]]] [[[[week]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.day.since.week eval = str(sh.time.day.since.week()) + 'd' [[[[month]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.day.since.month eval = str(sh.time.day.since.month()) + 'd' [[[[year]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.day.since.year eval = str(sh.time.day.since.year()) + 'd' [[[until]]] [[[[week]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.day.since.week eval = str(sh.time.day.since.week()) + 'd' [[[[month]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.day.until.month eval = str(sh.time.day.until.month()) + 'd' [[[[year]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.day.until.year eval = str(sh.time.day.until.year()) + 'd' [[hour]] [[[since]]] [[[[midnight]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.hour.since.midnight eval = str(sh.time.hour.since.midnight()) + 'h' [[[[week]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.hour.since.week eval = str(sh.time.hour.since.week()) + 'h' [[[[month]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.hour.since.month eval = str(sh.time.hour.since.month()) + 'h' [[[[year]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.hour.since.year eval = str(sh.time.hour.since.year()) + 'h' [[[until]]] [[[[midnight]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.hour.until.midnight eval = str(sh.time.hour.until.midnight()) + 'h' [[[[week]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.hour.until.week eval = str(sh.time.hour.until.week()) + 'h' [[[[month]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.hour.until.month eval = str(sh.time.hour.until.month()) + 'h' [[[[year]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.hour.until.year eval = str(sh.time.hour.until.year()) + 'h' [[minute]] [[[since]]] [[[[hour]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.minute.since.hour eval = str(sh.time.minute.since.hour()) + 'i' [[[[midnight]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.minute.since.midnight eval = str(sh.time.minute.since.midnight()) + 'i' [[[[week]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.minute.since.week eval = str(sh.time.minute.since.week()) + 'i' [[[[month]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.minute.since.month eval = str(sh.time.minute.since.month()) + 'i' [[[[year]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.minute.since.year eval = str(sh.time.minute.since.year()) + 'i' [[[until]]] [[[[hour]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.minute.until.hour eval = str(sh.time.minute.until.hour()) + 'i' [[[[midnight]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.minute.until.midnight eval = str(sh.time.minute.until.midnight()) + 'i' [[[[week]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.minute.until.week eval = str(sh.time.minute.until.week()) + 'i' [[[[month]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.minute.until.month eval = str(sh.time.minute.until.month()) + 'i' [[[[year]]]] type = num [[[[[dbstr]]]]] type = str eval_trigger = time.minute.until.year eval = str(sh.time.minute.until.year()) + 'i' [[second]] [[[since]]] [[[[minute]]]] type = num [[[[hour]]]] type = num [[[[midnight]]]] type = num [[[[week]]]] type = num [[[[month]]]] type = num [[[[year]]]] type = num [[[until]]] [[[[minute]]]] type = num [[[[hour]]]] type = num [[[[midnight]]]] type = num [[[[week]]]] type = num [[[[month]]]] type = num [[[[year]]]] type = num
Code:
#/logics/zeit.py #!/usr/bin/env python sh_now = sh.now() debug = False # Funktionen #def leap_year(year): # if (year % 400 == 0) or ((year % 4 == 0) and not (year % 100 == 0)): # return True # else: # return False def days_of_month(month, year): if month in [1, 3, 5, 7, 8, 10, 12]: days = 31 elif month in [4, 6, 9, 11]: days = 30 elif (year % 400 == 0) or ((year % 4 == 0) and not (year % 100 == 0)): #Schaltjahr days = 29 else: days = 28 return days def days_of_year(year): period_end = datetime.datetime(year,12,31) days_of_year = (period_end - datetime.datetime(period_end.year, 1, 1)).days + 1 return(days_of_year) def day_of_year(year,month,day): period_end = datetime.datetime(year,month,day) day_of_year = (period_end - datetime.datetime(period_end.year, 1, 1)).days + 1 return(day_of_year) if debug == True: print("RUNNING LOGIC OF TIME - REMOVE AFTER DEBUG") print(sh_now.hour) #Stunde print(sh_now.minute) #Minute print(sh_now.second) #Sekunde print(sh_now.day) #Tag print(sh_now.month) #Monat print(sh_now.isoweekday()) #Wochentag print(sh.now().isocalendar()[1]) #Kalenderwoche # Sekunde/Minute sh.time.second.since.minute(sh_now.second) sh.time.second.until.minute(60 - sh_now.second - 1) # Minute/Stunde sh.time.minute.since.hour(sh_now.minute) sh.time.minute.until.hour(60 - sh_now.minute - 1) # Stunde/Tag sh.time.hour.since.midnight(sh_now.hour) sh.time.hour.until.midnight(24 - sh_now.hour - 1) # Tag/Woche sh.time.day.since.week(sh_now.isoweekday()) sh.time.day.until.week(7 - sh_now.isoweekday()) # Stunde/Woche sh.time.hour.since.week(sh.time.hour.since.midnight() + (24 * (sh.time.day.since.week() - 1))) sh.time.hour.until.week(sh.time.hour.until.midnight() + (24 * sh.time.day.until.week())) # Kalenderwoche/Jahr sh.time.week.since.year(sh.now().isocalendar()[1]) # Monat/Jahr sh.time.month.since.year(sh_now.month) sh.time.month.until.year(12-sh_now.month) # Sekunde/Stunde sh.time.second.since.hour(sh.time.second.since.minute() + (60 * sh.time.minute.since.hour())) sh.time.second.until.hour(sh.time.second.until.minute() + (60 * sh.time.minute.until.hour())) # Sekunde/Tag sh.time.second.since.midnight(sh.time.second.since.minute() + (3600 * sh.time.hour.since.midnight())) sh.time.second.until.midnight(sh.time.second.until.minute() + (3600 * sh.time.hour.until.midnight())) # Minute/Tag sh.time.minute.since.midnight(sh.time.minute.since.hour() + (60 * sh.time.hour.since.midnight())) sh.time.minute.until.midnight(sh.time.minute.until.hour() + (60 * sh.time.hour.until.midnight())) # Minute/Woche sh.time.minute.since.week(sh.time.minute.since.hour() + (60 * sh.time.hour.since.week())) sh.time.minute.until.week(sh.time.minute.until.hour() + (60 * sh.time.hour.until.week())) # Sekunde/Woche sh.time.second.since.week(sh.time.second.since.minute() + (60 * sh.time.minute.since.week())) sh.time.second.until.week(sh.time.second.until.minute() + (60 * sh.time.minute.until.week())) # Tage/Monat sh.time.day.since.month(sh_now.day - 1) sh.time.day.until.month(days_of_month(sh_now.month,sh_now.year) - sh.time.day.since.month() - 1) # Tage/Jahr sh.time.day.since.year(day_of_year(sh_now.year,sh_now.month,sh_now.day) - 1) sh.time.day.until.year(days_of_year(sh_now.year) - sh.time.day.since.year() - 1) # Stunde/Monat sh.time.hour.since.month((24 * sh.time.day.since.month()) + sh.time.hour.since.midnight()) sh.time.hour.until.month((24 * days_of_month(sh_now.month,sh_now.year)) - sh.time.hour.since.month() - 1) # Stunde/Jahr sh.time.hour.since.year((24 * sh.time.day.since.year()) + sh.time.hour.since.midnight()) sh.time.hour.until.year((24 * days_of_year(sh_now.year)) - sh.time.hour.since.year() - 1) # Minute/Monat sh.time.minute.since.month((60 * sh.time.hour.since.month()) + sh.time.minute.since.hour()) sh.time.minute.until.month(sh.time.minute.since.month() - (60 * sh.time.hour.until.month()) - 1) # Minute/Jahr sh.time.minute.since.year((60 * sh.time.hour.since.year()) + sh.time.minute.since.hour()) sh.time.minute.until.year((60 * sh.time.hour.until.year()) + sh.time.minute.until.hour()) # Sekunde/Monat sh.time.second.since.month((60 * sh.time.minute.since.month()) + sh.time.second.since.minute()) sh.time.second.until.month((60 * sh.time.minute.until.month()) + sh.time.second.until.minute()) # Sekunde/Jahr sh.time.second.since.year((60 * sh.time.minute.since.year()) + sh.time.second.since.minute()) sh.time.second.until.year((60 * sh.time.minute.until.year()) + sh.time.second.until.minute())
Kommentar