Листинг 1. (Для статьи "VB и проблема 2000 года")

Private Sub Command1_Click()
  Dim TextDate$

  TextDate$ = Text1.Text
  Call ConvertYear(TextDate$)
  If TextDate$ <> "" Then ' правильная дата
    Label1.Caption = "Дата:  " & TextDate$
  Else
    Label1.Caption = "Неверный формат даты"
  End If
End Sub

Public Sub ConvertYear(TextDate$)
  'преобразование даты:
  ' двухзначное представление года в четырехзначное
  '
  ' Подразумевается российский стандарт даты: День.Месяц.Год
  Const YearWindow% = 50 ' год смены веков
  Dim strYear$, iPoint%
  iPoint% = InStr(TextDate$, ".")
  If iPoint% > 0 Then
    iPoint% = InStr(iPoint% + 1, TextDate$, ".")
    If iPoint% > 0 Then ' найдено поле года
      strYear$ = Mid$(TextDate$, iPoint% + 1)
      If Len(strYear$) <= 2 And strYear$ <> "" Then
        ' преобразование формата года
        If Len(strYear$) = 1 Then strYear$ = "0" & strYear$
        If CInt(strYear$) <= YearWindow% Then
          strYear$ = "20" & strYear$
        Else
          strYear$ = "19" & strYear$
        End If
          TextDate$ = Left$(TextDate$, iPoint%) + strYear$
      End If
    End If
  End If
  ' проверка на правильность даты:
  If Not IsDate(TextDate$) Then TextDate$ = ""
End Sub

В начало