richtige Formatierung der Zeit

Hallo,

ich habe hier ein Frage zur Formatierung der Zeit. Habe folgende Locale in diesme Format!

local zeitWerkAbends = '20:44'

local fensterspaet = '150' 

nun möchte ich eine Berechnung haben, wo diese Zeit (20:44Uhr) -fensterspaet (150min) in einer Localen geschreiben wird. Habe schon viel probiert. Klappt einfach nicht !

Hier noch die Berechnung :


local fenstereher = os.date("%H:%M", -3600+ zeitWerkAbends[1]*60*60 + zeitWerkAbends[2]*60-fensterspaet *60)); 

Ich mache hier irgendwas falsch mit der Berechnung der Zeitvariablen.

Wäre super wenn Ihr mir helfen könntet ! Ich möchte gerne das Zeitformat nicht ändern. Hier sind meine Programmierkenntnisse leider am ende.

Grüße

Wenn du zeitWerkAbends als Tabelle speichern willst musst du sie anders definieren.
In Deinem Fall wäre das local zeitWerkAbends = {‘20’,‘44’}

Habe einen Fehler gemacht.
Sollte als Zahl gespeichert werden:
local zeitWerkAbends = {20,44}

Ja, das wollte ich nicht. Habe mir eine Szene gebastelt wo ich die Zeiten als ‘20:44’ stehen habe. Hatte dafür die Rollladenszene genommen. Dort stehen die Zeiten so drin.


local a, b = fibaro:getValue(1,'sunsetHour'):match("([^,]+):([^,]+)")
local VersetzterSonnenUntergang = os.date("%H:%M", -3600+ a*60*60 + (b*60+minSonUnt*60));

Kann man vielleicht das oben umschreiben und weiß jemand wie das geht ? SunsetHour weglassen und dafür eine feste Zeit nehmen !

Danke

Grüße

local zeitWerkAbends = '20:44'
local fensterspaet = '150' 

local vTimeOut = {}
for match in string.gmatch(zeitWerkAbends, '[^:]+') do
  table.insert(vTimeOut, tonumber(match))
end

local fenstereher = os.date("%H:%M", -3600+ vTimeOut[1]*60*60 + vTimeOut[2]*60-fensterspaet *60); 

fibaro:debug(fenstereher) 

Super Danke,

ich werde es gleich heute Abend versuchen mit einzubinden.

Grüße