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