'JDE日期格式轉換成標準日期
'2005.4.4
'seanPublic Function jd(JulianDate)
Dim YearNO As Integer, DaysNo As Integer, DaysInYear As Integer
YearNO = Left(JulianDate, Len(JulianDate) - 3) + 1900
DaysNo = Right(JulianDate, 3)If YearNO Mod 4 = 0 Then
DaysInYear = 366
Else
DaysInYear = 365
End IfIf DaysNo <= DaysInYear And DaysNo >= 1 Then
jd = DateSerial(YearNO, 1, 1) + DaysNo - 1
Else: jd = "Invalid Julian Date"
End IfEnd Function
'把報表日期格式轉換成JDE日期格式
Public Function jdeDate(strDate)
If IsDate(strDate) = False Then
MsgBox "無效日期"
Exit Function
End If
jdeDate = CLng(CStr(CLng(Year(CVDate(strDate)) - 1900)) + Format(CStr(CVDate(strDate) - DateSerial(Year(CVDate(strDate)), 1, 1) + 1), "000"))
End Function
這是在寫在mdlSubFun中2段,我不是很明白2種日期之間的轉換,請指教下!
'2005.4.4
'seanPublic Function jd(JulianDate)
Dim YearNO As Integer, DaysNo As Integer, DaysInYear As Integer
YearNO = Left(JulianDate, Len(JulianDate) - 3) + 1900
DaysNo = Right(JulianDate, 3)If YearNO Mod 4 = 0 Then
DaysInYear = 366
Else
DaysInYear = 365
End IfIf DaysNo <= DaysInYear And DaysNo >= 1 Then
jd = DateSerial(YearNO, 1, 1) + DaysNo - 1
Else: jd = "Invalid Julian Date"
End IfEnd Function
'把報表日期格式轉換成JDE日期格式
Public Function jdeDate(strDate)
If IsDate(strDate) = False Then
MsgBox "無效日期"
Exit Function
End If
jdeDate = CLng(CStr(CLng(Year(CVDate(strDate)) - 1900)) + Format(CStr(CVDate(strDate) - DateSerial(Year(CVDate(strDate)), 1, 1) + 1), "000"))
End Function
這是在寫在mdlSubFun中2段,我不是很明白2種日期之間的轉換,請指教下!
Dim YearNO As Integer, DaysNo As Integer, DaysInYear As Integer
YearNO = Left(JulianDate, Len(JulianDate) - 3) + 1900'取出年份号,是Julian日期的前两位,表示为“19yy年”。估计会有千年虫的问题。
DaysNo = Right(JulianDate, 3) '取出后面的三位DDD,是一年中第几天 If YearNO Mod 4 = 0 Then '计算是否闰年,以确定该年份年天数
DaysInYear = 366
Else
DaysInYear = 365
End If If DaysNo <= DaysInYear And DaysNo >= 1 Then '根据该年的天数,判断julian日期中天数是否有效
jd = DateSerial(YearNO, 1, 1) + DaysNo - 1
Else: jd = "Invalid Julian Date"
End If End Function
'把報表日期格式轉換成JDE日期格式
'是上面过程的逆转换
Public Function jdeDate(strDate)
If IsDate(strDate) = False Then
MsgBox "無效日期"
Exit Function
End If
jdeDate = CLng(CStr(CLng(Year(CVDate(strDate)) - 1900)) + Format(CStr(CVDate(strDate) - DateSerial(Year(CVDate(strDate)), 1, 1) + 1), "000"))
End Function
jd = DateSerial(YearNO, 1, 1) + DaysNo - 1
'如果jd是date型,将返回yyyy-mm-dd的日期形式,如果是long,会返回距离1900年1月1日间隔的天数
Else: jd = "Invalid Julian Date"
End If