#Region " Date Conversions: GetGregorianDate, GetJDEDate "
Private Function GetGregorianDate(ByVal JDEDate As String) As Date
Dim GregDate As Date = DateTime.Today
JDEDate = JDEDate.Trim
If JDEDate.Length > 0I AndAlso Long.TryParse(JDEDate, New Long) Then
Dim DayOfYearStr As String = If(JDEDate.Length > 3I, JDEDate.Substring(JDEDate.Length - 3I, 3I), JDEDate)
If JDEDate.Length > 3I Then
JDEDate = JDEDate.Substring(0I, JDEDate.Length - 3I)
Dim YearStr As String = If(JDEDate.Length > 2I, JDEDate.Substring(JDEDate.Length - 2I, 2I), JDEDate)
If JDEDate.Length > 2I Then
JDEDate = JDEDate.Substring(0I, JDEDate.Length - 2I)
Dim Century As Integer = CInt(JDEDate) + 19I
GregDate = New Date(CInt(Century.ToString & YearStr), 1I, 1I)
Else
'No century was provided
GregDate = New Date(CInt("19" & CInt(YearStr).ToString("00")), 1I, 1I)
End If
Else
'DayOfYear is all that was provided
GregDate = New Date(m_MinDate.Year, m_MinDate.Month, m_MinDate.Day)
End If
GregDate = GregDate.AddDays(CInt(DayOfYearStr) - 1I)
End If
Return GregDate
End Function
Private Function GetJDEDate(ByVal GregorianDate As Date) As String
Return String.Format("{0}{1}{2}", If(GregorianDate.Year < 2000I, String.Empty, CStr(CInt(GregorianDate.Year.ToString.Substring(1I, 1I)) + 1I)), GregorianDate.Year.ToString.Substring(2I, 2I), GregorianDate.DayOfYear.ToString("000")).TrimStart("0"c)
End Function
Private Function IsJDEDate(ByVal dte As String) As Boolean
Dim Output As Boolean = False
dte = dte.Trim
If dte.Length > 0I AndAlso Long.TryParse(dte, New Long) Then
Dim DayOfYearStr As String = If(dte.Length > 3I, dte.Substring(dte.Length - 3I, 3I), dte)
Dim DayOfYearInt As Integer = Integer.Parse(DayOfYearStr)
If DayOfYearInt >= 0I AndAlso DayOfYearInt <= 366 Then
If dte.Length > 3I Then
dte = dte.Substring(0I, dte.Length - 3I)
Dim YearStr As String = If(dte.Length > 2I, dte.Substring(dte.Length - 2I, 2I), dte)
Dim YearInt As Integer = Integer.Parse(YearStr)
If YearInt >= 0I Then
If dte.Length > 2I Then
dte = dte.Substring(0I, dte.Length - 2I)
If Integer.Parse(dte) >= 0I Then Output = True
Else
Output = True
End If
End If
Else
Output = True
End If
End If
End If
Return Output
End Function
#End Region