Microsoft KB Archive/113327

= PRB: Unexpected Date Value Returned from Format Function =

Article ID: 113327

Article Last Modified on 5/5/2001

-

APPLIES TO


 * Microsoft Visual Basic 3.0 Professional Edition

-



This article was previously published under Q113327



SYMPTOMS
When using the Date, Time, or Format function to return information about a Date/Time variable, you may get results other than what you expected. For Example, the following prints January: Print Format$(4, "MMMM") ' Print the Month represented by number 4



CAUSE
The value 4 when interpreted as a date is Jan 3, 1900. Dates are stored in Variants of VarType 7 (Date) as double-precision numbers. This number represents a date from January 1, 100 through December 31, 9999 -- where January 1, 1900 is 2. Negative numbers represent dates prior to December 30, 1899.



RESOLUTION
To get the string "April" to print when the only date information available is the Month 4, use a function such as DateSerial and supply it with an arbitrary Day and Year.

Step-by-Step Example
 Start a new project in Visual Basic. Form1 is created by default. Add a command button (Command1) to the form.  Add the following code to the Command1_Click event:

Sub Command1_Click

Dim AnyDay As Integer Dim AnyYear As Integer

AnyDay = 1     ' Allowed values are: 1 to 31 AnyYear = 1994 ' Allowed values are: 100 to 9999

Print Format$(DateSerial(AnyYear, 4, AnyDay), "MMMM")

End Sub  Run the program.

The following will print:

April



STATUS
This behavior is by design.

Additional query words: kbvbp300 kbDSupport FORMAT FORMAT$ DATESERIAL vb4sweep

Keywords: kbprb KB113327

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.