FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: FHEm2005 am 01 Februar 2015, 12:38:02

Titel: Termin gegen aktuellem Tagesdatum prüfen
Beitrag von: FHEm2005 am 01 Februar 2015, 12:38:02
Nachdem ich jetzt gefühlte 100Stunden gesucht habe und immer noch nicht schlauer bin, möchte ich mein Problem kurz schildern, in der Hoffnung, dass Jemand mir hilft.

Ein Terminkalender zeigt meine Termine an (ohne Beanstandung). Jetzt möchte ich die Termine für den aktuellen und für den kommenden Tag farbig kennzeichnen. Das habe ich wie folgt vor:
attr privTermine valueStyle {(substr($READING,8,2) eq "05") && (substr($READING,5,2) eq "02")?'style="color:red"':'style="color:white"' }

Da wo "05" steht soll das Tadesdatum rein. also ungefähr so: substr(variable om Datum,x,y). Jetzt weiß ich aber die Bezeichnung der Variablen für das Tagesdatum nicht.

Wie heißt sie und wie muss ich sie in dieseem Kontext verwenden?

Gruß
Eberhard
Titel: Antw:Termin gegen aktuellem Tagesdatum prüfen
Beitrag von: nesges am 02 Februar 2015, 13:28:06
In http://fhem.de/commandref.html#perl sind verschiedene Datumsvariablen beschrieben. Wenn da nicht das passende dabei ist: http://perldoc.perl.org/functions/localtime.html
Titel: Antw:Termin gegen aktuellem Tagesdatum prüfen
Beitrag von: FHEm2005 am 06 Februar 2015, 08:46:52
Hi nesges,
vielen Dank für den Tipp.

Ich wollte in meinem Terminkalender  die aktuellen Termine rot einfärben, die von morgen gelb und die von übermorgen grün. $mday hat leider nicht funktioniert. Deshalb musste ich auf localtime zurückgreifen.

attr rg_muellTermin valueStyle {if((substr($READING,8,2) eq strftime "%d",localtime(time+2*86400)) && (substr($READING,5,2) eq strftime "%m",localtime(time+2*86400))) {'style="color:limegreen"'} elsif ((substr($READING,8,2) eq strftime "%d",localtime(time+86400)) && (substr($READING,5,2) eq strftime "%m",localtime(time+86400))) {'style="color:yellow"'} elsif ((substr($READING,8,2) eq strftime "%d",localtime(time)) && (substr($READING,5,2) eq strftime "%m",localtime(time))) {'style="color:red"'} else {'style="color:white"'} }


Ich hatte zuerst die Variante "if(substr($READING,8,2) eq ($mday+2)" versucht. Das haute nicht hin. deshalb der Weg über  " strftime "%d",localtime(time+2*86400)"

Gruß Eberhard