'JDE日期 轉換為標準日期 Public Function JdeToDate(ByVal JulianDate) Dim YearNo As Integer, DaysNo As Integer, DaysInYear As Integer YearNo = Microsoft.VisualBasic.Left(JulianDate, Len(JulianDate) - 3) + 1900 DaysNo = Microsoft.VisualBasic.Right(JulianDate, 3) If YearNo Mod 4 = 0 Then DaysInYear = 366 Else DaysInYear = 365 End If Dim jj As Date If DaysNo <= DaysInYear And DaysNo >= 1 Then jj = DateSerial(YearNo, 1, 1) '+ DaysNo - 1 Else : JdeToDate = "Invalid Julian Date" End If Dim Mydate As Date = jj Dim Mydates As New System.TimeSpan(DaysNo - 1, 0, 0, 0, 0) Dim ss As String = Mydate.Add(Mydates) Dim aa As String = Mydate.Subtract(Mydates) 'Me.DtProduce.Value = Mydate.Subtract(Mydates) JdeToDate = ss End Function '標準日期轉換為JDE中日期 Public Function DateToJde(ByVal strDate) 'If IsDate(strDate) = False Then Exit Function Dim jdeDt As String Dim Mydate As Date = strDate Dim Dt As Date = DateSerial(Year(CDate(strDate)), 1, 1) Dim Mydates As New System.TimeSpan(1, 0, 0, 0, 0) Dim ss As String = Dt.Add(Mydates) Dim NextMonth As Date = DateAdd(DateInterval.Month, 1, #1/31/1995#) Dim dt2 As Date = DateAdd(DateInterval.Day, -1, Dt) Dim D As String = Format(DateDiff(DateInterval.Day, dt2, CDate(strDate)), "000") jdeDt = CLng(CStr(CLng(Year(CDate(strDate))) - 1900) & D) Return jdeDt End Function以上兩個函數幫我改為C#行嗎?
datetime d = new DateTime(year, month, date);
'JDE日期 轉換為標準日期 Public Function JdeToDate(ByVal JulianDate) Dim YearNo As Integer, DaysNo As Integer, DaysInYear As Integer YearNo = Microsoft.VisualBasic.Left(JulianDate, Len(JulianDate) - 3) + 1900 DaysNo = Microsoft.VisualBasic.Right(JulianDate, 3) If YearNo Mod 4 = 0 Then DaysInYear = 366 Else DaysInYear = 365 End If Dim jj As Date If DaysNo <= DaysInYear And DaysNo >= 1 Then jj = DateSerial(YearNo, 1, 1) '+ DaysNo - 1 Else : JdeToDate = "Invalid Julian Date" End If Dim Mydate As Date = jj Dim Mydates As New System.TimeSpan(DaysNo - 1, 0, 0, 0, 0) Dim ss As String = Mydate.Add(Mydates) Dim aa As String = Mydate.Subtract(Mydates) 'Me.DtProduce.Value = Mydate.Subtract(Mydates) JdeToDate = ss End Function '標準日期轉換為JDE中日期 Public Function DateToJde(ByVal strDate) 'If IsDate(strDate) = False Then Exit Function Dim jdeDt As String Dim Mydate As Date = strDate Dim Dt As Date = DateSerial(Year(CDate(strDate)), 1, 1) Dim Mydates As New System.TimeSpan(1, 0, 0, 0, 0) Dim ss As String = Dt.Add(Mydates) Dim NextMonth As Date = DateAdd(DateInterval.Month, 1, #1/31/1995#) Dim dt2 As Date = DateAdd(DateInterval.Day, -1, Dt) Dim D As String = Format(DateDiff(DateInterval.Day, dt2, CDate(strDate)), "000") jdeDt = CLng(CStr(CLng(Year(CDate(strDate))) - 1900) & D) Return jdeDt End Function以上兩個函數幫我改為C#行嗎?
Console.WriteLine(str);
如果要实现 DateSerial函数 月份13自动调整到12的功能可能只能手写代码了 手动判断数字
Public Function JdeToDate(ByVal JulianDate)
Dim YearNo As Integer, DaysNo As Integer, DaysInYear As Integer
YearNo = Microsoft.VisualBasic.Left(JulianDate, Len(JulianDate) - 3) + 1900
DaysNo = Microsoft.VisualBasic.Right(JulianDate, 3) If YearNo Mod 4 = 0 Then
DaysInYear = 366
Else
DaysInYear = 365
End If
Dim jj As Date
If DaysNo <= DaysInYear And DaysNo >= 1 Then
jj = DateSerial(YearNo, 1, 1) '+ DaysNo - 1 Else : JdeToDate = "Invalid Julian Date"
End If Dim Mydate As Date = jj
Dim Mydates As New System.TimeSpan(DaysNo - 1, 0, 0, 0, 0)
Dim ss As String = Mydate.Add(Mydates)
Dim aa As String = Mydate.Subtract(Mydates)
'Me.DtProduce.Value = Mydate.Subtract(Mydates)
JdeToDate = ss
End Function '標準日期轉換為JDE中日期
Public Function DateToJde(ByVal strDate)
'If IsDate(strDate) = False Then Exit Function
Dim jdeDt As String Dim Mydate As Date = strDate Dim Dt As Date = DateSerial(Year(CDate(strDate)), 1, 1)
Dim Mydates As New System.TimeSpan(1, 0, 0, 0, 0)
Dim ss As String = Dt.Add(Mydates) Dim NextMonth As Date = DateAdd(DateInterval.Month, 1, #1/31/1995#)
Dim dt2 As Date = DateAdd(DateInterval.Day, -1, Dt) Dim D As String = Format(DateDiff(DateInterval.Day, dt2, CDate(strDate)), "000")
jdeDt = CLng(CStr(CLng(Year(CDate(strDate))) - 1900) & D) Return jdeDt
End Function以上兩個函數幫我改為C#行嗎?
Public Function JdeToDate(ByVal JulianDate)
Dim YearNo As Integer, DaysNo As Integer, DaysInYear As Integer
YearNo = Microsoft.VisualBasic.Left(JulianDate, Len(JulianDate) - 3) + 1900
DaysNo = Microsoft.VisualBasic.Right(JulianDate, 3) If YearNo Mod 4 = 0 Then
DaysInYear = 366
Else
DaysInYear = 365
End If
Dim jj As Date
If DaysNo <= DaysInYear And DaysNo >= 1 Then
jj = DateSerial(YearNo, 1, 1) '+ DaysNo - 1 Else : JdeToDate = "Invalid Julian Date"
End If Dim Mydate As Date = jj
Dim Mydates As New System.TimeSpan(DaysNo - 1, 0, 0, 0, 0)
Dim ss As String = Mydate.Add(Mydates)
Dim aa As String = Mydate.Subtract(Mydates)
'Me.DtProduce.Value = Mydate.Subtract(Mydates)
JdeToDate = ss
End Function '標準日期轉換為JDE中日期
Public Function DateToJde(ByVal strDate)
'If IsDate(strDate) = False Then Exit Function
Dim jdeDt As String Dim Mydate As Date = strDate Dim Dt As Date = DateSerial(Year(CDate(strDate)), 1, 1)
Dim Mydates As New System.TimeSpan(1, 0, 0, 0, 0)
Dim ss As String = Dt.Add(Mydates) Dim NextMonth As Date = DateAdd(DateInterval.Month, 1, #1/31/1995#)
Dim dt2 As Date = DateAdd(DateInterval.Day, -1, Dt) Dim D As String = Format(DateDiff(DateInterval.Day, dt2, CDate(strDate)), "000")
jdeDt = CLng(CStr(CLng(Year(CDate(strDate))) - 1900) & D) Return jdeDt
End Function以上兩個函數幫我改為C#行嗎?