none
Datum für Zeitumstellung eines Landes ermitteln RRS feed

  • Frage

  • Hallo,

    für mein aktuelles Programm suche ich eine Funktion, die mir zwei Daten liefert. Beginn der Datum Sommerzeitbeginn und Datum Sommerzeitende.

    Hintergrund ist der, das das Programm aus einem DateTimePicker ein Datum erhält und in Abhängigkeit ob das Datum in die Sommerzeit fällt oder nicht Korrekturen vornimmt.
    Aktuell ermittle ich über Culture eine "Starteinstellung" die Grundlage für eine von 4 Uhrzeiten ist.
    Das Programm ist für den Einsatz beim Segeln gedacht. Hier gibt es für die Gezeitenberechnung Bezugsorte (Helgoland als Bezugsort für Deutschland, Dover für England ...) bei großen Reisen kommt man dann in Zeitzonen, bei denen die Umstellung zwischen Sommer- und Winterzeit zu einem anderen Datum erfolgt.
    Eine Möglichkeit wäre natürlich, diese Werte in zwei MaskedTextBoxen abzufragen. Das setzt aber voraus, dass man bei der Reiseplanung AUCH daran denkt diese Daten zu recherchieren.

    Windows hat diese Infos ja irgendwo und nimmt die Änderung automatisch vor.
    Ich stelle mir also eine Lösung vor, bei der ich alle Geografischen Areale, für die Microsoft entsprechende Informationen hat in z.B. in einer Listbox aufliste, mein Areal auswähle und somit die Daten habe, die mein DateTimePicker dann für dieses Areal braucht.

    Ländereinstellung am Notebook ändern kommt aus dem Grund nicht in Frage, weil dies die Heimatuhrzeit verwaltet, die wiederum für andere Funktionen wichtig ist.

    Vorschläge (auch Code) sehr willkommen :-)


    Liebe Grüße Stefan | Cheers Stefan I'm using VB 2008 Express Be a good forum member - mark posts that contain the answers to your questions or those that are helpful c# in vb Translator: http://www.developerfusion.com/tools/convert/csharp-to-vb/
    Freitag, 2. September 2011 11:10

Antworten

  • Noch mal hallo,

    habe mich vielleicht etwas unglücklich ausgedrück und inzwischen einen Lösungsansatz gefunden.

    With TimeZone.CurrentTimeZone
      ' aktuelle Zeitzone (Sommer-/Winterzeit)
      If .IsDaylightSavingTime(Now) Then
        ListBox1.Items.Add("Aktuelle Zeitzone: " & .DaylightName)
      Else
        ListBox1.Items.Add("Aktuelle Zeitzone: " & .StandardName)
      End If
     
      ' Beginn und Ende der Sommerzeit 
      ListBox1.Items.Add("Beginn der Sommerzeit: " & .GetDaylightChanges(Year(Now)).Start)
      ListBox1.Items.Add("Ende der Sommerzeit: " & .GetDaylightChanges(Year(Now)).End)
    End With
    

     


    Liebe Grüße Stefan | Cheers Stefan I'm using VB 2008 Express Be a good forum member - mark posts that contain the answers to your questions or those that are helpful c# in vb Translator: http://www.developerfusion.com/tools/convert/csharp-to-vb/
    • Als Antwort markiert Giftzwockel Freitag, 2. September 2011 20:17
    Freitag, 2. September 2011 20:17

Alle Antworten

  • Noch mal hallo,

    habe mich vielleicht etwas unglücklich ausgedrück und inzwischen einen Lösungsansatz gefunden.

    With TimeZone.CurrentTimeZone
      ' aktuelle Zeitzone (Sommer-/Winterzeit)
      If .IsDaylightSavingTime(Now) Then
        ListBox1.Items.Add("Aktuelle Zeitzone: " & .DaylightName)
      Else
        ListBox1.Items.Add("Aktuelle Zeitzone: " & .StandardName)
      End If
     
      ' Beginn und Ende der Sommerzeit 
      ListBox1.Items.Add("Beginn der Sommerzeit: " & .GetDaylightChanges(Year(Now)).Start)
      ListBox1.Items.Add("Ende der Sommerzeit: " & .GetDaylightChanges(Year(Now)).End)
    End With
    

     


    Liebe Grüße Stefan | Cheers Stefan I'm using VB 2008 Express Be a good forum member - mark posts that contain the answers to your questions or those that are helpful c# in vb Translator: http://www.developerfusion.com/tools/convert/csharp-to-vb/
    • Als Antwort markiert Giftzwockel Freitag, 2. September 2011 20:17
    Freitag, 2. September 2011 20:17
  • Hallo Stefan,

    mit .NET 3.5 und später gibt es die TimeZoneInfo-Klasse, die einiges mehr beherrscht,
    da sie auf die Betriebssystem-Zeitzonen zurückgreift.
    So kann sie u. a. wechselnde Zeitzonenregeln (GetAdjustmentRules).

    Gruß Elmar

    Dienstag, 6. September 2011 19:20