Year 2000 Visual Basic 응용 프로그램 준비 방법

기술 자료 번역 기술 자료 번역
기술 자료: 162718 - 이 문서가 적용되는 제품 보기.
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
모두 확대 | 모두 축소

이 페이지에서

요약

개발자는 사용자가 응용 프로그램을 12/31/1999 벗어나는 날짜를 처리하는 방법을 대한 관심이 있을 수 있습니다. 1월 1st 따라 연도의 2000, 프로그램을 2000이나 1900, 심지어 1980 연도 수 생각할 것입니다? 이 기사의 목적은 Visual Basic 응용 프로그램을 제대로 12/31/1999 넘어 날짜와 함께 동작합니다 확인해야 합니다.

추가 정보

모든 버전의 Visual Basic 연도를 네 자리 형식으로 1999 보다 처리하는 동안 두 자리 연도의 날짜 (예: 7/3/45) 에 전달하는 VBA 날짜를 해당하는 어떤 세기 맡도록 강제로. 아마도 이 동작을 설명하는 가장 좋은 방법은 빠른 VBA 기록 과의 제공할 수 있습니다.

Visual Basic 기록 단원

모든 버전의 Windows VBA (Visual Basic 같은 선행 DOS 및 QuickBasic 포함) 전에 및 3.0 포함한 경우 두 자리 연도는 항상 수 있는 1900s 것으로 않았습니다. 이 기본 구현하는 코드를 각 버전 런타임 라이브러리로 작성되었으며 운영 체제 버전 또는 현재 시스템 날짜 세기 종속되지 않습니다.

개발 주기 Visual Basic 3.0 및 4.0 사이에 두 개의 새 엔터티를 등장했습니다: 응용 프로그램 및 OLE 자동화 VBA. 이러한 기술의 출현으로 전에 Visual Basic 런타임 라이브러리 담당하는 네 자리 연도를 두 자리 연도 변환 코드가 포함되어 있습니다. OLE 자동화 많은 다른 응용 프로그램에 액세스할 수 있는 기능 노출하는. VBA 이 코드를 구현할 필요가 없으며, 대신 OLE 자동화 라이브러리에 호출을 수행할 수 있습니다.

Visual Basic 4.0이 상호 이 운용성을 염두에 두고 개발된 및 대부분의 경우 네 자리 연도를 두 자리 연도를 변환할 OLE 자동화 라이브러리에 의존하는 시작했습니다. 이때 OLE 자동화 라이브러리를 제공할 수 있는 것보다 더 많은 기능을 VBA 필요하기 때문에 Visual Basic 런타임 라이브러리에서 구현된 DateSerial 함수를 규칙을 예외입니다.

Visual Basic 4.0 개발 주기 동안 Microsoft Visual Basic의 이전 버전에서 사용되는 기본값을 신뢰할 수 있지만 반드시 실용적인 있던 결정했습니다. 따라서 새 규칙을 등장했습니다. 두 자리 연도 시스템 날짜 현재 연도로 변환할 수 있습니다. 따라서 Year(Date("1/1/00")) 현재 세기 평가하는 것입니다. 이 새 규칙은 Visual Basic 4.0 및 Visual Basic 응용 프로그램에 대해 사용되는 OLE 자동화 라이브러리의 구현되었습니다. 또한 Visual Basic 4.0 런타임 라이브러리 DateSerial 함수를 규칙을 구현합니다.

나중에 Microsoft reconsidered 및 OLE 자동화 기본 변경되었습니다 (이제 단순히 자동화) 라이브러리를 같은 버전의 2.20.4049 OleAut32.dll. 이 변경 자동화 라이브러리, 32 비트 응용 프로그램만 사용하는 16비트 응용 프로그램이 영향을 미치지 않습니다. 이제, 1972 같이 30, 72) 와 같은 99 사이의 두 자리 연도 해석 동안 00-29 (예: 17) 사이의 두 자리 연도 2017로 해석됩니다. 새 자동화 라이브러리에 대한 DateSerial 함수를 Visual Basic 필요한 기능을 제공합니다. 따라서 Visual Basic 5.0 및 이후 릴리스에서는 더 이상 이 함수에 대한 규칙은 런타임 라이브러리에서 구현합니다.

업데이트된 자동화 라이브러리는 Internet Explorer 버전 3.0, Windows NT 3.51 서비스 팩 5, Windows NT 4.0, Windows 95 OSR 2, Office 97, Visual Basic 5.0 및 다른 제품과 함께 제공됩니다.

이 평균 있는 모든 사용자가 VBA 사용 개발자를 기능?

Visual Basic 3.0 및 이전 버전을 위해 1900s 두 자리 연도를 모두 변환합니다.

Visual Basic 4.0 (16비트) 현재 시스템 날짜 세기 위해 두 자리 연도를 모두 변환합니다. 사용할 함수에 따라 Visual Basic 16비트 자동화 라이브러리 또는 런타임 라이브러리의 기본 설정을 기준으로 날짜를 변환합니다. 16 비트 자동화 라이브러리의 기본 Visual Basic 4.0 동작을 날짜 함수를 사용하는 관계없이 일관된 때문에 릴리스 이후 수정되지 않은.

Visual Basic 4.0 네 자리 연도 두 자리 연도를 모두 현재 시스템 날짜 세기 위해 변환합니다 DateSerial 함수를 사용하여 때 제외한 자동화 라이브러리의 기본 기반으로 하는 두 자리 연도 (32비트) 로 변환합니다. Visual Basic 4.0 릴리스되었을 때 제공되는 32비트 자동화 라이브러리 (OleAut32.dll 버전 2.10) 두 자리 연도를 모두 현재 시스템 날짜 세기 위해 변환됩니다. 30 99 사이의 두 자리 연도 경우 나중에 32비트 자동화 라이브러리 (OleAut32.dll 버전 2.20 이상) 로 1900s 두 자리 연도를 변환합니다. 두 자리 연도를 00-29 사이에 있으면 날짜 2000s로 변환됩니다.

Visual Basic 버전 4.0, 변환 두 자리 연도 네 자리 연도 자동화 라이브러리의 모든 날짜 함수의 기본 기반으로 하는 이후. Visual Basic 5.0 30 99 사이의 두 자리 연도 경우 두 자리 연도 수 1900s 변환합니다 버전을 2.20.4054 함께 제공되는. 두 자리 연도를 00-29 사이에 있으면 날짜 2000s로 변환됩니다.

What If 해당 기본값 Like 않음?

규칙 집합을 직접 Visual Basic 네이티브 기본값을 사용하는 대신 사용할 수 있습니다. 예를 들어, 두 자리 연도 경우에만 입력하고 00 위해 2000 2049 년 해당하며 50 99 1950 1999 년 해당하는 가집니다 49 있어야 할 수 있습니다.

사용자가 날짜 문자열에서 수락했을 때 자릿수 연도를 입력한 확인하려면 문자열의 형식을 테스트하십시오. 이 샘플에서는 응용 프로그램의 규칙에 따라 2045, 연도 연도 1945 않는 45 1 11 것입니다. 응용 프로그램의 코드 내에 적절한 네 자릿수 연도로 사용할 문자열을 변경한 다음 네 자리 연도의 날짜 문자열을 날짜 변수로 변환하십시오.

예제 코드

다음 코드를 cmdConvertDate 클릭하면 txtDate 라는 텍스트 상자에 입력한 데이터를 계산합니다. 날짜를 두 자리 연도 있으면 날짜 샘플 규칙에 따라 네 자리 연도 날짜를 로 변환됩니다. 그런 다음 변환된 샘플 규칙에 따라 코드를 통해 전체 연도로 입력한 초기 날짜 표시합니다 및 Visual Basic 네이티브 기본값 전체 연도 변환됩니다. 마지막으로, txtDate에 표시되는 날짜는 적절한 네 자리 연도의 비-모호한 날짜가 변환됩니다.

두 자리 연도를 해석하는 방법에 대한 규칙을 처리하는 코드를 개발한 후에는 32 비트 사용자 지정 컨트롤에 있는 컨트롤 만들기 Edition의 Visual Basic 코드를 작성할 수 있습니다. 이 제품 및 사용자 지정 컨트롤을 만드는 자세한 내용은 다음 Microsoft Visual Basic 웹 사이트를 참조하십시오.

http://www.microsoft.com/vbasic

이 코드는 mm-dd 형식으로 날짜를 입력할 수 있어야 하지만 이를 쉽게 처리하는 다른 날짜 형식을 변경할 수 있습니다:

   Private Sub cmdConvertDate_Click()
       Dim strYear As String
       Dim intSlash As Integer
       If IsDate(txtDate) or txtDate = "2/29/00" Then
           'Find first date separator.
           intSlash = InStr(txtDate, "/")
           If intSlash > 0 Then
               'Find second date separator.
               intSlash = InStr(intSlash + 1, txtDate, "/")
               If intSlash > 0 Then
                   'Extract the year from the date.
                   strYear = Mid(txtDate, intSlash + 1)
                   If Len(strYear) = 2 Then
                       If CInt(strYear) < 50 Then
                       ' Less than 50: year = 20XX.
                           strYear = "20" & strYear
                       Else
                       ' Greater than 50: year = 19XX.
                           strYear = "19" & strYear
                       End If
                   End If
                   MsgBox "Date Entered: " & txtDate
                   MsgBox "Year (Our Rule): " & strYear
                   MsgBox "Year (VB Default): " & Year(txtDate)
               Else
                   MsgBox "Date not in expected format!"
               End If
           Else
               MsgBox "Date not in expected format!"
           End If
       Else
           MsgBox "Not a valid date!"
       End If
       '  Clarify date in txtDate.
       txtDate.Text = Left(txtDate.Text, intSlash) & strYear
   End Sub
				

참조

Microsoft Visual Basic 도움말 파일; 따라 검색: 날짜 및 Variant 데이터 형식; IsDate 함수를; CDate 및 CVDate 함수

(c) Microsoft의 1997 년 예약 모든 권한. David 는 Sceppa, Microsoft Corporation에 의해 기고물

속성

기술 자료: 162718 - 마지막 검토: 2014년 3월 1일 토요일 - 수정: 3.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic Control Creation Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual Basic 2.0 Standard Edition
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Visual Basic 1.0 Standard Edition
키워드:?
kbnosurvey kbarchive kbmt kbhowto KB162718 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com