'从字符串返回日期序列号
'DateValueYF( ByRef DateString as String ) as Double '
'FB 内置 DateValue 遇到非标准日期格式，返回 0 的BUG，所以自己写个
'DateString  必须是  年 月 日 排列，中间分割及前后的字符可以是除数字之外的任意字符
'            从字符前面读，遇到第1组数字为年，2组为月，3组为日，所以后面可以包含时间及任意东西
#Include Once "vbcompat.bi"
Function DateValueYF(ByRef DateString as String) as Double '
   Dim as Long  I,a,b
   Dim as String y,m,d,c
   b = -1
   For i = 1 To Len(DateString)
      c = Mid(DateString, i, 1)
      If InStr("0123456789", c) = 0 Then
         If a = 0 Then
            a = 1
            b += 1
         End If
      Else
         If b = -1 Then b = 0
         Select Case b
            Case 0
               y &= c
            Case 1
               m &= c
            Case 2
               d &= c
            Case Else
               Exit For
         End Select
         a = 0
      End If
   Next
   
   Function = DateSerial(Val(Y), Val(M), Val(D))
   
End Function