vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Datumseingaben auf Plausibilität prüfen für Vb2005 
Autor: ModeratorDieter (Moderator)
Datum: 25.10.08 09:30

Habe mal die Funktion, von der Du gesprochen hast, auf .NET angepasst:
  ' Datum auf Plausibilität prüfen
  ' Rückgabewert: formatierte Datumsangabe oder Leerstring,
  '               wenn ungültiges Datum
  Public Function CheckAndFormatDate(ByVal Datum As String) As String
    Dim Result As Boolean = False
    Dim TT As Short = 0
    Dim MM As Short = 0
    Dim JJ As Short = 0
    Dim FormatedDate As String = ""
 
    ' Ist überhaupt ein Datum eingetragen?
    If Datum.Replace(".", "").Trim.Length > 0 Then
 
      ' keine Punkte im Datum vorhanden
      If Datum.IndexOf(".") < 0 Then
 
        ' Eingabelänge mindestens 4-stellig
        If Datum.Length > 3 Then
          TT = Val(Datum.Substring(0, 2))
          MM = Val(Datum.Substring(2, 2))
 
          If Datum.Substring(4).Trim.Length = 0 Then
            ' Jahresangabe fehlt -> aktuelles Jahr annehmen
            JJ = Year(Now)
          Else
            JJ = Val(Datum.Substring(4))
          End If
          Result = True
        End If
      Else
 
        ' Eingabe enthält Punktangaben
        Dim Data() As String = Datum.Split(".")
 
        ' Tag ermitteln
        TT = Val(Data(0))
 
        ' Monat ermitteln
        If Data.Length > 0 Then
          MM = Val(Data(1))
 
          ' Jahr ermitteln
          JJ = Year(Now)
          If Data.Length > 1 AndAlso (Data(2).Trim.Length) > 0 Then JJ = _
            Val(Data(2))
          Result = True
        End If
      End If
 
      If Result Then
        ' Tag und Monat prüfen
        If TT > 0 And TT < 32 AndAlso MM > 0 And MM < 13 Then
          ' wenn Jahresangabe zweistellig
          ' 2000 annehmen, wenn kleiner 30 ansonsten 1900
          If JJ < 100 Then JJ = IIf(JJ < 30, 2000 + JJ, 1900 + JJ)
 
          ' wenn Tag größer als maximale Anzahl Tage im angegeben Monat...
          Dim calendar As New System.Globalization.GregorianCalendar
          Dim TMax = calendar.GetDaysInMonth(JJ, MM)
 
          ' ...Tagesangabe korrigieren
          If TT > TMax Then TT = TMax
 
          ' wenn alles OK - Datum formatieren (tt.mm.jjjj)
          FormatedDate = New DateTime(JJ, MM, TT).ToString("dd.MM.yyyy")
        End If
      End If
    End If
 
    Return FormatedDate
  End Function

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datumseingaben auf Plausibilität prüfen für Vb20051.419Loco24.10.08 19:54
Re: Datumseingaben auf Plausibilität prüfen für Vb2005997ModeratorDaveS24.10.08 22:00
Re: Datumseingaben auf Plausibilität prüfen für Vb20051.028Loco25.10.08 09:03
Re: Datumseingaben auf Plausibilität prüfen für Vb20051.125ModeratorDieter25.10.08 09:30
Re: Datumseingaben auf Plausibilität prüfen für Vb2005982Loco25.10.08 17:46

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv 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