vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 
zurück
Rubrik: Datum/Zeit und Timer · Datums- und Zeitfunktionen   |   VB-Versionen: VB5, VB602.02.05
Datumsauswahl vor 1601 - ohne DTPicker-Control

Leider erlaubt das DTPicker-Control Datumseingaben bis frühestens 1601. Unter Berücksichtigung der Kalenderreform von 1582 lässt sich das Problem wie folgt lösen.

Autor:   ThomasBewertung:     [ Jetzt bewerten ]Views:  12.477 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Das DTPicker-Control erlaubt leider nur die Datumseinstellung bis frühestens 1601. Es sollen aber auch vorher schon Leute gelebt haben!

Ich habe mir da selbst beholfen und dabei auf die Kalenderreform von 1582 geachtet. Hier mein Vorschlag:

Benötigt wird eine Form mit folgenden Controls:

  • 2 x ComboBox (Combo1 und Combo2)
  • 1 x TextBox (Text1)
  • 1 x CommandButton (Command1)

Jetzt bitte noch nachfolgenden Code in den Codeteil der Form einfügen:

Private Sub Form_Load()
  Dim i As Long
 
  ' Tage
  With Combo1
    For i = 1 To 31
      .AddItem Format$(i, "00")
    Next i
  End With
 
  ' Monate
  With Combo2
    For i = 1 To 12
      .AddItem Format$(i, "00")
    Next i
  End With
 
  ' Voreinstellung für Datum
  Text1.Text = 1582
  Combo1.Text = "05"
  Combo2.Text = 10
End Sub
Private Sub Command1_Click()
  Dim Datum As String
  Dim Datum1 As String
  Dim Datum2 As String
  Dim i As Long
 
  Datum2 = "04.10.1582"
  If Combo1.Text <> "" And Combo2.Text <> "" And Text1.Text <> "" Then
    Datum = Combo1.Text & "." & Combo2.Text & "." & Text1.Text
    For i = 1 To 10
      Datum1 = DateAdd("d", i, Datum2)
      If Datum = Datum1 Then
        MsgBox "Nach Einführung des gregorianischen Kalenders im Jahre 1582 durch Papst Gregor" & _
          "XIII folgte auf den 04.10.1582 der 15.10.1582. Diese Maßnahme war notwendig geworden, " & _
          "um die bis dahin aufgelaufene Differenz von 10 Tagen (des julianischen Kalenders von" & _
          "46 v. Chr.) wieder auszugleichen. Das Datum wird auf den 04.10.1582 " & _
          "zurückgesetzt.", vbExclamation, "Die Kalenderreform von 1582"
        Combo1.Text = "04"
      End If
    Next i
  End If
End Sub

Dieser Tipp wurde bereits 12.477 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen [email protected]  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren [email protected]!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2022 [email protected] Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel