Seite 1 von 1

Monatsanfang per Skript herausfinden

Verfasst: 15.02.2020, 11:30
von duffy6
Hallo zusammen,

zwei Fragen an Euch:
1) Wie kann ich denn mittels Skript herausfinden, ob es um 0:01 Uhr einen Monatswechsel gegeben hat?
EDIT: sehe es gerad selber, ich lasse das Skript einfach am 1. Tag jeden 1. Monats laufen!

2) Und wie kann ich den Timecode (system.Date Integer) des vergangenen Monats-Ersten herausfinden.
--> noch ungeklärt

Mit diesen beiden Angaben würde ich dann nämlich gerne Werte aus meinem CCU-historian abholen.


Thx!

Gruß
duffy6

Re: Monatsanfang per Skript herausfinden

Verfasst: 15.02.2020, 12:12
von Xel66
Ich verstehe Dein Problem nicht. Du kannst mit den Werkzeugen aus der Homematic-Scriptbeschreibung doch beliebige Zeitstrings zusammenbauen. Da ist es doch eher kein Problem vom aktuellen Monat einen abzuziehen. Dann wird doch automatisch der Monat des Vormonats draus. Lediglich beim Januar musst Du Dir was überlegen und auch vom Jahr einen abziehen. Ich würde es aber anders machen. Ich würde für den Tag des Scriptlaufes (Monatserster) einen Tag abziehen und lediglich den Tag im String durch eine Eins ersetzen.

Gruß Xel66

Re: Monatsanfang per Skript herausfinden

Verfasst: 15.02.2020, 12:17
von duffy6
Ich verstehe Deine Antwort leider nicht.

Gehen wir davon aus, dass das Skript am Monatsersten (sagen wir bspw. den 1.3.2020) um 0:00 Uhr startet.
Wie würdest Du nun den Timecode vom 1.2.2020 bestimmen?

Vielleicht liegt die Lösung so nahe und ich sehe sie nur nicht...

Grüße und Danke
duffy6

Re: Monatsanfang per Skript herausfinden

Verfasst: 15.02.2020, 12:19
von Xel66
Timecode vom 1.3. nehmen einen Tag abziehen (dann hast Du den 29.02.) und im String die 29 gegen eine 1 austauschen und schon wird der 1.2. draus. Und für den Jahreswechsel gilt in diesem Falle das Gleiche, weil Du schon in dem Jahr bist, wenn Du vom 1.1. einen Tag abziehst (und dann die 31 durch eine 1 ersetzt).

Gruß Xel66

Re: Monatsanfang per Skript herausfinden

Verfasst: 15.02.2020, 12:21
von duffy6
ahhhh, sehr coole Idee! Danke!

Ich bin leider nicht so der Skripter. Hast Du da ein paar Code-Schnipsel für mich?

Re: Monatsanfang per Skript herausfinden

Verfasst: 15.02.2020, 14:43
von alchy

Code: Alles auswählen

!Vom 01 des Monats auf den 01. des Vormonats
!by Alchy https://homematic-forum.de/forum/viewtopic.php?f=19&t=56839#p564080
time Zeit = @2020-03-01 00:00:05@;
WriteLine(Zeit.Format("%d.%m.%Y") #" = "#Zeit.ToInteger());
string sLastMF = (Zeit.ToInteger() - 86400).ToTime().Format("01"#".%m.%Y");
WriteLine(sLastMF #" = " #sLastMF.ToTime().ToInteger());
Alchy