Preparazione di applicazioni Visual Basic per l'anno 2000

Traduzione articoli Traduzione articoli
Identificativo articolo: 162718 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato archiviato. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Lo sviluppatore potrebbe essere preoccuparsi di come le applicazioni gestiscono le date oltre 31/12/1999. Ritiene primo gennaio dell'anno 2000, verranno i programmi che Ŕ l'anno 2000, 1900 o anche 1980? L'obiettivo di questo articolo Ŕ per garantire che le applicazioni funzioneranno correttamente con le date oltre 31/12/1999 di Visual Basic.

Informazioni

Mentre tutte le versioni di Visual Basic gestirÓ anni maggiori 1999 (in un formato a quattro cifre), passando un anno a due cifre in una data (ad esempio 7/3/45) impone Presupponi quale secolo la data corrisponde a Visual Basic. Forse il modo migliore per spiegare questo comportamento, Ŕ possibile dare una rapida lezione cronologia Visual Basic.

Lezione di cronologia di Visual Basic

Per tutte le versioni di Visual Basic per Windows, inclusi predecessori, ad esempio Visual Basic per DOS e QuickBasic, prima e inclusi 3.0, gli anni a due cifre sono stati sempre considerato uguale a nel 1900s. Il codice per implementare questa impostazione predefinita Ŕ stato creato in libreria di runtime della ogni versione e non dipende la versione del sistema operativo o il secolo dalla data di sistema corrente.

Tra i cicli di sviluppo di Visual Basic 3.0 e 4.0, Ŕ emersa due entitÓ nuova: Visual Basic per applicazioni e di automazione. Prima per l'introduzione di queste tecnologie, libreria di runtime del Visual Basic contenuto il codice responsabile della conversione di un anno a due cifre in un anno a quattro cifre. Automazione OLE esposte numerose funzionalitÓ che potrebbero accedere altre applicazioni. Visual Basic, Applications Edition non Ŕ stato necessario implementare questo codice, Impossibile effettuare chiamate le librerie di automazione invece.

Visual Basic 4.0 Ŕ stato sviluppato con questa interoperabilitÓ presente e ha iniziato a dipendono le librerie di automazione per convertire gli anni a due cifre in anni di quattro cifre nella maggior parte dei casi. L'eccezione alla regola Ŕ la funzione DateSerial che Ŕ stata implementata nella libreria di runtime di Visual Basic PoichÚ Visual Basic richiede ulteriori funzionalitÓ rispetto a possibile fornire la libreria di automazione in quel momento.

Durante il ciclo di sviluppo Visual Basic 4.0, Microsoft ha deciso che i valori predefiniti utilizzati nelle versioni precedenti di Visual Basic erano affidabile ma non necessariamente pratico. In questo modo, emersa una nuova regola. Un anno a due cifre pu˛ essere convertito nel secolo corrente della data di sistema. Di conseguenza, Year(Date("1/1/00")) dovrebbe restituire il secolo corrente. Questa nuova regola Ŕ stata implementata nelle librerie di automazione utilizzate da Visual Basic 4.0 e Visual Basic, Applications Edition. La libreria di runtime di Visual Basic 4.0 implementa inoltre la regola per la funzione DateSerial.

In seguito Microsoft reconsidered e modificare l'impostazione predefinita in automazione OLE (ora semplicemente automazione) le librerie di versione 2.20.4049 di OleAut32.dll. Questa modifica non influisce sulle applicazioni che utilizzano le librerie di automazione, solo applicazioni a 32 bit a 16 bit. A questo punto, un anno a due cifre compreso tra 00 e 29 (ad esempio 17) viene interpretato come 2017 mentre un anno a due cifre compreso tra 30 e 99 (ad esempio 72) viene interpretato come 1972. Nuove librerie di automazione forniscono le funzionalitÓ che richiede di Visual Basic per la funzione DateSerial. In questo modo, Visual Basic 5.0 e versioni successive non implementano le regole per questa funzione nelle librerie di runtime.

La libreria di automazione aggiornata viene fornito con Internet Explorer versione 3.0 e versioni successive, Windows NT 3.51 Service Pack 5, Windows NT 4.0, Windows 95 OSR 2, Office 97, Visual Basic 5.0 e altri prodotti.

Operazioni che Ŕ tutti la media per gli sviluppatori che utilizzano Visual Basic?

Visual Basic 3.0 e versioni precedenti convertono il 1900s tutti anni a due cifre.

Visual Basic 4.0 (16 bit) converte tutti anni a due cifre per il secolo dalla data di sistema corrente. A seconda della funzione utilizzata, Visual Basic converte la data in base alle impostazioni in librerie di automazione di 16 bit o la libreria di runtime. Le impostazioni predefinite nelle librerie di automazione di 16 bit non sono state modificate rispetto a Visual Basic 4.0 rilasciati quindi il comportamento Ŕ coerenza indipendentemente dal quale funzione di data utilizzato.

Visual Basic 4.0 (32-bit) converte due cifre agli anni di quattro cifre in base all'impostazione predefinita nelle librerie di automazione, tranne quando utilizzando la funzione di DateSerial che converte tutti anni a due cifre per il secolo dalla data di sistema corrente. Le librerie di automazione di 32 bit (versione 2.10 OleAut32.dll) spediti al momento Ŕ stato rilasciato Visual Basic 4.0 convertito tutti anni a due cifre il secolo dalla data di sistema corrente. Librerie di automazione a 32 bit successive (versione OleAut32.dll 55, 9 e versioni successive) consente di convertire gli anni a due cifre nel 1900s se l'anno a due cifre Ŕ compreso tra 30 e 99. Se l'anno a due cifre Ŕ compreso tra 00 e 29, la data viene convertita nel 2000s.

Versioni di Visual Basic dopo a 4.0, per convertire due cifre agli anni di quattro cifre in base all'impostazione predefinita nelle librerie di automazione per tutte le funzioni data. Visual Basic 5.0 fornito con versione 2.20.4054 che converte gli anni a due cifre per il 1900s se l'anno a due cifre Ŕ compreso tra 30 e 99. Se l'anno a due cifre Ŕ compreso tra 00 e 29, la data viene convertita nel 2000s.

What If non LIKE degli predefinite?

╚ possibile che desideri utilizzare proprio insieme di regole invece di utilizzare le impostazioni predefinite native in Visual Basic. Ad esempio, Ŕ possibile che si desidera immettere solo un anno a due cifre e 00 a 49 corrispondono agli anni 2000 per 2049 e dispone di 50 e 99 corrispondono agli anni 1950 a 1999.

Quando si accetta una stringa di data da parte dell'utente, verificare il formato della stringa per determinare il numero di cifre immesso per l'anno. In base alle regole per questa applicazione di esempio, 1, 11/45 Ŕ nell'anno 2045 e non nell'anno 1945. All'interno del codice per l'applicazione, modificare la stringa da utilizzare l'anno a quattro cifre appropriato, quindi convertire tale stringa di data con l'anno a quattro cifre in una variabile Data.

Codice di esempio

Il codice riportato di seguito restituisce i dati immessi in una casella di testo denominato txtDate quando si fa clic su cmdConvertDate. Se la data contiene un anno a due cifre, la data viene convertita in una data di anno a quattro cifre in base alla regola di esempio. Il codice visualizza quindi la data iniziale immessa, l'anno completo come convertito dal codice in base alla regola di esempio, e l'anno completo viene convertito mediante le impostazioni predefinite native in Visual Basic. Infine, la data visualizzata in txtDate viene convertita in una data non ambigua con l'anno a quattro cifre appropriato.

Una volta che si Ŕ sviluppate il codice per gestire regole personalizzate per l'interpretazione degli anni a due cifre, Ŕ possibile creare codice in un controllo personalizzato a 32 bit con il controllo Creazione edizione di Visual Basic. Per ulteriori informazioni sul prodotto e sulla creazione di controlli personalizzati, vedere il sito Web di Microsoft Visual Basic in:

http://www.microsoft.com/vbasic

Questo codice Ŕ necessario che le date essere immessi nel formato gg/mm/aa, ma pu˛ essere modificato facilmente per gestire un formato di data diversi:

   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
				

Riferimenti

Guida in linea di Visual Basic file; Cerca in: data e tipi di dati Variant; IsDate funzione; CDate e CVDate funzioni;

(c) Microsoft Corporation 1997, tutti i diritti riservati. Con il contributo di David Sceppa, Microsoft Corporation

ProprietÓ

Identificativo articolo: 162718 - Ultima modifica: venerdý 21 febbraio 2014 - Revisione: 3.3
Le informazioni in questo articolo si applicano a:
  • 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 a 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
Chiavi:á
kbnosurvey kbarchive kbmt kbhowto KB162718 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 162718
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

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