Variable %daylightname% mit Ausgabe "CET/CEST" ?

Fragen, Anregungen zur PC-Wetterstations-Software

Moderatoren: Werner, Tex, weneu

Antworten
WS-Mijas

Variable %daylightname% mit Ausgabe "CET/CEST" ?

Beitrag von WS-Mijas »

Hallo Variablen-Experten,

leider haben wir noch immer die unsinnige - weil teure, uneffektive und viel Aufwand fordernde sog. Sommerzeit. Es ist nicht zu erwarten, daß sich die vielen Nationen in absehbarer Zeit darauf einigen können diesen Nonsense wieder abzuschaffen.

Dieser Schaltvorgang muß zweimal im Jahr erledigt werden.
Auch WSWin hat dafür eine Variable (%daylightname%).

Zu einer kompletten Zeitangabe gehört meiner Meinung nach auch immer der Zusatz um welches Zeitgebiet (bei uns also MEZ/MESZ bzw. CET/CEST) es sich handelt oder optional um die Weltzeit UTC bzw. GMT.

Die WSWin-Variable (%daylightname%) gibt diese Angabe im Klartext "Mitteleuropäische Sommerzeit"/"Mitteleuropäische Zeit" aus.
Ich möchte aber die international verwendbare Abkürzung CET/CEST auf meinen Seiten haben. Dafür habe ich in der WSWin-Variablen-Liste nichts Entsprechendes gefunden.

Jetzt habe ich inzwischen eine verschachtelte Variablenkonstruktion mit der diese Ausgabe korrekt generiert wird, allerdings mit dem Nachteil, daß Teile des Variablen-Codes ebenfalls angezeigt werden.
Hier der Syntax, den ich meine und zur Diskussion stelle:
_______________________________________________

%ws_compare[3]=%daylightname%~Mitteleuropäische Sommerzeit~%ws_setmem[1]=111%~%ws_setmem[1]=222%%
%ws_compare[3]=%ws_getmem[1]%~111~%ws_setmem[2]=CEST%~%ws_setmem[2]=CET%% Anzeige: %ws_getmem[2]%

_______________________________________________

Die beiden Zahlenwerte 111 und 222 in %ws_setmem[1]% sind fiktiv und sollen den Vergleich des Ergebnisses aus dem ersten %ws_compare[3]=%daylightname%~Mitteleuropäische Sommerzeit ... ermöglichen.

Dieses Konstrukt gibt in %ws_getmem[2]% als Ergebnis tatsächlich "CEST" aus. Ob es nach Ende der Sommerzeit auch richtig funktioniert muß ich abwarten.

Wie habt Ihr das gelöst? Irgendwann habe ich auf einer WSWin-Wetter-Webseite das schon einmal gesehen, aber ich weiß nicht mehr wo.

Kann mir da jemand helfen wie dieses Variablenkonstrukt richtig formuliert werden muß, daß es nur das Ergebnis CET bzw. CEST präsentiert und nicht auch noch Teile der Variablen selbst?

Vielleicht könnte es in einer späteren WSWwin-Version die Möglichkeit geben, daß die Variable %daylightname% verschiedene, vom User anwählbare, Ausgabeformate liefert?

Für helfende Vorschläge bedanke ich mich im voraus.
joergeli
Beiträge: 669
Registriert: 30 Aug 2006 17:32
Wohnort: 61279 Grävenwiesbach (Hessen)
Kontaktdaten:

Beitrag von joergeli »

Hallo Bernd,

wie wär's damit ?:

Code: Alles auswählen

Zum Testen:

%ws_setmem[20]=Mitteleuropäische Sommerzeit%
Deutsch:  %ws_getmem[20]% 

%ws_setmem[1]=%ws_comparestr=%ws_getmem[20]%~Mitteleuropäische Sommerzeit~CET%%
%ws_setmem[2]=%ws_comparestr=%ws_getmem[1]%~CET~CEST%%
International: %ws_getmem[2]%

--------------------------------------------------------------

Ergebnis:


%ws_setmem[1]=%ws_comparestr=%daylightname%~Mitteleuropäische Sommerzeit~CET%%
%ws_setmem[2]=%ws_comparestr=%ws_getmem[1]%~CET~CEST%%
International: %ws_getmem[2]%
Erläuterung zum Abschnitt "Test":
Wenn ich die Variable ( hier %daylightname% ) nicht beeinflussen kann, bzw. nicht warten will, bis wir wieder "Winterzeit" haben,
ersetze ich sie erst mal durch einen eigenen Wert (hier %ws_setmem[20]= ....).
Dann trage ich die möglichen Werte, also "Mitteleuropäische Sommerzeit" bzw. "Mitteleuropäische Zeit" nacheinander ein
und schaue dann, was dabei herauskommt.
Ist das Ergebnis zufriedenstellend, ersetze ich meine "Hilfsvariable
%ws_setmem[20]=...." durch die reale Variable, also %daylightname%

Ich hoffe, das ist das, was Du gesucht hast.

Gruß
Jörg

P.S. Für Textvergleiche ist die Variable ws_comparestr (Compare String) besser geeignet.
http://www.joergeli.de
WS 2500PC V3.1 mit Superhet-Empfänger HFS302, WsWIN V2.98.7
WS 3001, 2xWS1000, WS2000, WS2500
Wetterstation Heinzenberg/Taunus
Benutzeravatar
weneu
Site Admin
Beiträge: 11572
Registriert: 22 Feb 2002 01:00
Wohnort: Donauwörth
Danksagung erhalten: 18 mal
Kontaktdaten:

Beitrag von weneu »

Hallo Jörg,
möchte jetzt Bernd nicht vorgreifen, aber: herzlichen Glückwunsch, das sollte funktionieren.
Habe gerade den "Code" mal durchgeprüft, es ist schon eine verwegene Konstruktion.
Ich interpretiere es mal so:
1. Fall:
daylightname enthält "Mitteleuropäische Sommerzeit"
dann ergibt setmem[1] den Wert "CET", denn text1 = text2
nun wird CET mit CET verglichen, da sie gleich sind, kommt text3 ,also CEST --> und das ist ja gewollt

2. Fall:
daylightname enthält "Mitteleuropäische Zeit"
dann ergibt setmem[1] den Wert "Mitteleuropäische Sommerzeit", denn text1 <> text2
nun wird "Mitteleuropäische Sommerzeit" mit CET verglichen, da sie ungleich sind, kommt text2 ,also CET --> ebenfalls so gewollt.

Nun muss der Anwender nur noch aufpassen, ob sein Rechner wirklich
"Mitteleuropäische Sommerzeit" liefert oder "Westeuropäische Sommerzeit", sonst geht das Ganze von der Logik her schief.

Ich muss der Ehrlichkeit halber gestehen, dass ich das auch ausprobiert habe, mir aber die Zähne daran ausgebissen habe.
WS-Mijas

Beitrag von WS-Mijas »

Grüß Gott Joergli,

danke, daß Du Dich mit meiner Aufgabe beschäftigt und Deinen Lösungsansatz gleich mitgeliefert hast.

Um Deine Version zu testen habe ich Deinen Codevorschlag gleich unverändert in die custom.txt (bei mir heißt sie custom-de.txt) kopiert und sie in WSWin durchlaufen lassen.

Das Ergebnis siehst Du hier: http://calahonda-info.net/Wetter/html/custom-de.html.

Wie Du siehst habe ich auch hier das gleiche Problem, daß Teile des Codes mit angezeigt werden. Woran liegt das?

Ich habe als OS XP-pro SP3 (eingestellt ist "Mitteleuropäische Zeit/Sommerzeit").

Außerdem wird bei %ws_getmem[2]% als Wert "CET" ausgegeben und nicht "CEST". Wir haben zwar heute Nacht Tag/Nachtgleiche die Umstellung auf Normalzeit ist aber erst in 5 Wochen, demnach wäre das korrekte Ergebnis "CEST".

Wo muß ich noch nacharbeiten?

Danke auch an Dich Werner (weneu), daß Du Dich an dem Thema aktiv beteiligst.
Benutzeravatar
Werner
Site Admin
Beiträge: 6091
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 145 mal
Kontaktdaten:

Beitrag von Werner »

@Bernd,

warum verwendest Du als Ausgangsgrößen nicht die Variablen:
a: %ws_rfc822datetime% Mon, 21 Sep 2009 22:00:00 +0200
oder
b: %ws_daylightminutes% -60

Mit einem Vergleich bei a mit den letzten 5 Zeichen (+0200)
bzw. bei b mit dem Wert ist es meiner Meinung nach einfacher
zu ermitteltn ob es jetzt CET oder CEST ist.

Werner
joergeli
Beiträge: 669
Registriert: 30 Aug 2006 17:32
Wohnort: 61279 Grävenwiesbach (Hessen)
Kontaktdaten:

Beitrag von joergeli »

@weneu
Habe auch 'ne Weile daran rumgeknabbert, ist ein wenig "von hinten durch die Brust in's Auge" :wink:

@Bernd
Wie Du siehst habe ich auch hier das gleiche Problem, daß Teile des Codes mit angezeigt werden. Woran liegt das?
hmmm.., kann ich so auch nicht sagen.
Auf jeden Fall kann das Ergebnis ( %ws_getmem[2]% ) nicht stimmen,
wenn schon der erste Vergleich ( ws_setmem[1]=.... ) nicht funktioniert, was bei Dir der Fall ist.
Anders gesagt: Es dürfen keine "Teile des Codes mit angezeigt werden".

Stell doch mal den entspr. Abschnitt aus Deiner custom-de.txt hier ein, evtl. kann man dann sehen, woran es liegt.

Gruß
Jörg
http://www.joergeli.de
WS 2500PC V3.1 mit Superhet-Empfänger HFS302, WsWIN V2.98.7
WS 3001, 2xWS1000, WS2000, WS2500
Wetterstation Heinzenberg/Taunus
WS-Mijas

Beitrag von WS-Mijas »

Hallo Joergli, Werner & Werner,

vielen Dank für Eure Hilfe.

@Joergli:
hier ist der gesamte Code dieser Tabellenzelle (ohne die Rahmen und Tabellenanweisungen selbst), in die ich Deinen Vorschlag eingefügt habe:

Code: Alles auswählen

<p>
    <b>
    <span><strong>
            <font>
            <font>
            %ws_hour2%&#58;%ws_minute2% </font>
            </font></strong></span>
            <font>MESZ</font></b><hr>
<p>
    <font>
Test&#58;</font><p>
    %ws_setmem&#91;20&#93;=Mitteleuropäische Sommerzeit% <br>
    Deutsch&#58;&nbsp; %ws_getmem&#91;20&#93;% <br>
    <br>
    %ws_setmem&#91;1&#93;=%ws_comparestr=%ws_getmem&#91;20&#93;%~Mitteleuropäische 
    Sommerzeit~CET%% <br>
    %ws_setmem&#91;2&#93;=%ws_comparestr=%ws_getmem&#91;1&#93;%~CET~CEST%% <br>
    International&#58; %ws_getmem&#91;2&#93;%<p>
    &nbsp;<p>
    <font>
Ergebnis&#58;</font><p>
    %ws_setmem&#91;1&#93;=%ws_comparestr=%daylightname%~Mitteleuropäische 
    Sommerzeit~CET%% <br>
    %ws_setmem&#91;2&#93;=%ws_comparestr=%ws_getmem&#91;1&#93;%~CET~CEST%% <br>
    International&#58; %ws_getmem&#91;2&#93;%
[Edit:] Pardon, die Zeilen wurden hier etwas eigenartig formatiert!

@Werner (admin)
danke für diese interessante Variante. Ich werde es auch damit versuchen.
Mal sehen ob ich fähig bin dafür die "setmem-s" und "getmem-s" richtig zu setzen. Ich melde mich wieder, wenn ich eine funktionierende und präsentierbare Verschachtelung zustande gebracht habe.
joergeli
Beiträge: 669
Registriert: 30 Aug 2006 17:32
Wohnort: 61279 Grävenwiesbach (Hessen)
Kontaktdaten:

Beitrag von joergeli »

Hallo Bernd,

der Fehler liegt wahrscheinlich daran, daß Du innerhalb der "mem-Anweisungen" unzulässige Zeilenumbrüche eingefügt hast (hinter Mitteleuropäische...).

So sollte es funktionieren:

Code: Alles auswählen

    <font>
Test&#58;</font><p>
    %ws_setmem&#91;20&#93;=Mitteleuropäische Sommerzeit% <br>
    Deutsch&#58;&nbsp; %ws_getmem&#91;20&#93;% <br>
    <br>
    %ws_setmem&#91;1&#93;=%ws_comparestr=%ws_getmem&#91;20&#93;%~Mitteleuropäische Sommerzeit~CET%% <br>
    %ws_setmem&#91;2&#93;=%ws_comparestr=%ws_getmem&#91;1&#93;%~CET~CEST%% <br>
    International&#58; %ws_getmem&#91;2&#93;%<p>
    &nbsp;<p>
    <font>
Ergebnis&#58;</font><p>
    %ws_setmem&#91;1&#93;=%ws_comparestr=%daylightname%~Mitteleuropäische Sommerzeit~CET%% <br>
    %ws_setmem&#91;2&#93;=%ws_comparestr=%ws_getmem&#91;1&#93;%~CET~CEST%% <br>
    International&#58; %ws_getmem&#91;2&#93;%
Wie Werner schon erwähnt hat, muß die Variable %daylightname% auch die Werte Mitteleuropäische Sommerzeit bzw. Mitteleuropäische Zeit ausgeben.
Ich habe hier auf der Arbeit auch noch einen Rechner mit englischem Windows XP, der gibt "W. Europe Standard Time" aus. Damit funktioniert's dann natürlich nicht.

Gruß
Jörg
http://www.joergeli.de
WS 2500PC V3.1 mit Superhet-Empfänger HFS302, WsWIN V2.98.7
WS 3001, 2xWS1000, WS2000, WS2500
Wetterstation Heinzenberg/Taunus
WS-Mijas

Ja die <br>-s waren es - danke

Beitrag von WS-Mijas »

Grüß Gott Joergli,

danke für diesen wichtigen Tip mit den br-s, die ich aber nicht selbst aktiv eingesetzt habe, sondern das war FrontPage.
So konnte ich auch Deinen Code nicht mit copy & paste 1zu1 einfügen. Alle br-s die hier im Codefenster waren wurden mit übernommen. Ich mußte sie sämtlich manuell entfernen. Erst dann hat alles gestimmt.

Naja, wie auch immer, jetzt läufts korrekt, wie Du sehen kannst. Nun werde ich das Ganze noch optisch gut einbinden und so habe ich in Zukunft CET und CEST, so wie ich es wollte. Auf meiner deutsche Seite lasse ich aber MEZ bzw. MESZ.

Danke Joergli für Deine effektive Hilfe. Aufgabe gelöst.

Trotzdem möchte ich auch den Tip von Werner (admin) aufnehmen und in die Tat umsetzen, schon auch um mich in der Anwendung von komplexen Variablen zu üben.
joergeli
Beiträge: 669
Registriert: 30 Aug 2006 17:32
Wohnort: 61279 Grävenwiesbach (Hessen)
Kontaktdaten:

Beitrag von joergeli »

Hallo Bernd,

freut mich, dass es jetzt funktioniert.
Noch eine Anmerkung dazu: Es lag nicht an den br-s, sondern am (unsichtbaren) Zeilenumbruch zwischen Mitteleuropäische und Sommerzeit.
Es ist halt immer ein Problem, wenn man einen HTML-Generator verwendet, dass dann zwar in den meisten Fällen etwas Brauchbares dabei herauskommt,
aber wenn man doch noch manuelle Änderungen vornehmen will, durch den automatisch generierten Code nur schwer durchblickt.
Frontpage habe ich 1 Mal probiert und dann schnell wieder sein gelassen, weil m.E. ein vollkommen überladener Code generiert wird (ist aber nur meine pers. Meinung).

Ich bin dann den "steinigen Weg" gegangen und mir mühsam z.B. bei http://de.selfhtml.org/ die Grundkenntnisse von HTML angeeignet und
erstelle seitdem meine (unperfekten) Seiten mit einem normalen Texteditor.
Das ist aber natürlich auch eine Frage des Zeitaufwandes, den man betreiben möchte/kann.

Hasta luego
Jörg
http://www.joergeli.de
WS 2500PC V3.1 mit Superhet-Empfänger HFS302, WsWIN V2.98.7
WS 3001, 2xWS1000, WS2000, WS2500
Wetterstation Heinzenberg/Taunus
WS-Mijas

Zum Thema "unsichtbare linefeeds" -- schon fast 'O

Beitrag von WS-Mijas »

Hallo Joergli,

danke, daß Du mir noch einmal geantwortet und wirklich alles klar gestellt hast.
Da wir diesen Thread nun wieder schließen können antworte ich doch noch hier, obwohl das schon wieder ein eigenes Thema ist.

Dein "steiniger" Weg, den Du gegangen bist, ist sicher die einzig richtige Konsequenz um solchen "automatischen" Fehlern aus dem Weg gehen zu können. Ich würde mich glücklich schätzen, wenn ich Deinen Weg auch gehen könnte. Aber dazu ist es bei mir mit jetzt fast 69 Lenzen leider zu spät. Ich bringe es einfach nicht in mein Hirn rein und drum bin ich froh, daß ich wenigstens das FP habe, sonst gäbe es meine Wetter-Webseite gar nicht. Außerdem hat mir weneu oft Mut gemacht und immer wieder geholfen als ich in den Seilen hing.

Bei SELFHTML hole ich mir schon auch immer wieder Hilfen und Anregungen, wenn FP einmal spinnt oder die Zunge raus streckt - mit: "geht nicht".

So habe ich mich jetzt seit 12/2005 durch gewurstelt, vorher hatte ich NULL-Ahnung von HTML und PHP, etc.

Die Quell-Codes meiner Seiten sind mit Sicherheit keine "Lehr"-Seiten für Anfänger im Webpage entwickeln. Aber die Seiten zeigen das was ich präsentieren will und ich glaube die wenigsten Besucher lassen sich im IE oder FireFox den Quellcode anzeigen. So kann ich damit leben.

Es ist auch eine Beruhigung für mich, daß es hier ein Forum gibt, in dem ein holli, ein joergli, ein weneu (alphabethische Reihenfolge) und einige andere fleißige Antworter immer bereitwillig kompetente Auskunft geben, wenn ich mit WSWin ein Problem habe. Vielen Dank an Euch ALLE!

Übrigens hier noch eine schöne Ausarbeitung zum vorher abgehandelten Thema:
http://msdn.microsoft.com/de-de/library/bb978960.aspx

Servus bis zum nächsten Mal und ...
joergeli
Beiträge: 669
Registriert: 30 Aug 2006 17:32
Wohnort: 61279 Grävenwiesbach (Hessen)
Kontaktdaten:

Beitrag von joergeli »

Hallo Bernd,
Aber dazu ist es bei mir mit jetzt fast 69 Lenzen leider zu spät.
... da neige ich doch in Ehrfurcht mein schon fast kahles Haupt :!:
Nee, ohne Scherz, stell mal Dein Licht jetzt nicht unter den Scheffel, andere in diesem Alter können einen PC noch nicht mal einschalten.

Hut ab !
Jörg
http://www.joergeli.de
WS 2500PC V3.1 mit Superhet-Empfänger HFS302, WsWIN V2.98.7
WS 3001, 2xWS1000, WS2000, WS2500
Wetterstation Heinzenberg/Taunus
WS-Mijas

CET/CEST bzw. MEZ/MESZ mit %ws_daylightminutes%

Beitrag von WS-Mijas »

Hallo @Werner (admin),

ich bin ja noch eine Antwort bzgl. Deines Vorschlages für eine CET/CEST-Abfrage schuldig:
______________________________________________________

Bevor ich selbst zu einer funktionierenden Interpretation kommen konnte hat mir Werner (weneu) seine Auslegung zu %ws_daylightminutes% zugeschickt und folgende Erläuterung beigefügt:

"%ws_daylightminutes% liefert offenbar zur Sommerzeit "-60" und zur Normalzeit "0"
Damit ist die Sache dann ganz einfach. Es wird überprüft, ob %ws_daylightminutes% den Wert "0" enthält (was der Normalzeit entsprechen würde). Wenn der Vergleich wahr ist, gilt der Wert CET, wenn er nicht stimmt (also zur Sommerzeit) gilt der Wert CEST
Das Ergebnis des Vergleichs wird in setmem[1] gemerkt und mit getmem[1] ausgegeben.

Der Abfrage- und Ausgabestring sieht dann fertig so aus:
%ws_setmem[1]=%ws_compare[3]=%ws_daylightminutes%~0~CET~CEST%%
International: %ws_getmem[1]%"


Er funktioniert natürlich und liefert das von mir gewünschte Ergebnis und wird hiermit zur allgemeinen Verwendung präsentiert.

Ohne die Lösung von @joergli abwerten zu wollen, sie funktioniert ja genauso sicher, finde ich Deinen Weg eleganter und verwende ihn jetzt auch.
Schließlich kommt dieser Lösungsansatz vom "Chef" und der kennt die Möglichkeiten seiner Variablen halt an Besten.

Dies ist wieder ein Beispiel dafür wie vielseitig WSWin mit Variablen ausgestattet ist, daß ein und die selbe Aufgabe mit min. zwei verschiedenen Variablen gelöst werden kann/konnte.

Nochmals vielen Dank allen Variablen-Spezialisten, die sich an der Beantwortung meiner Frage helfend beteiligt haben.
Antworten