Solved

IsDate doesn't work properly in VB.net 2008 -- What else can I use?

Posted on 2009-05-16
3
436 Views
Last Modified: 2012-05-07
Okay, So I have a CSV, basicly it has different functions. I just converted from VB6 to .net 2008, However.. There are some difficulties with the IsDate function now.

Isdate in VB6 would come back true if:

05/05/2008
05/05/2008 05:05:02
05/05/2008 12:00:00PM

And I think some basic ones like May 05, 2008, or something like that.

Anyways. The string its searching can have different formats, thus I need to CHECK to make sure it is a date, this was great in VB6, however, .NET returns a string like 05/05/2008 05:05:02 to FALSE. I am not sure why either.

Basicly the function coding was basic for it:

                        If validfound = -1 Then
                            For i = 0 To UBound(marray)
                                If IsDate(marray(i)) Then
                                    validfound = i
                                    Exit For
                                End If
                            Next
                        End If

And it was fine, but now I am having issues. any suggesetions so that it works for all dates and if theres a time included for that too?

It can however use short or long dates too, like 5/5/2008 or 05/05/2008 or 5/5/08, for example.. Stuff like that. Was okay previously.
0
Comment
Question by:Valleriani
  • 2
3 Comments
 
LVL 7

Author Comment

by:Valleriani
ID: 24403480
Ok I found the problem, for example:

30/4/2008 will work
but 4/30/2008 will not.

How can I solve this?
0
 
LVL 7

Author Comment

by:Valleriani
ID: 24403490
And please keep in mind sometimes dates can be November, 19 2008 for example.. Or have time in them too..
0
 
LVL 4

Accepted Solution

by:
TMarkham1 earned 500 total points
ID: 24403892
Look into the DateTime.TryParse method. It takes in a String and a reference to a DateTime object as parameters. If it can parse the string value successfully, it will place the correct date and time in the DateTime reference passed in. It returns a boolean value so yo know whether or not the string value is in fact a date. It is also overloaded so you can setup your own format on which to parse.
Dim strDate as String = '5/05/2009 09:31:24'

Dim DateVal as DateTime
 

If DateTime.TryParse(strDate, DateVal) Then

   'DateVal is set to 05/05/2009 09:31:24

End If

Open in new window

0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now