Преобразование дат с формат DD/MM/YYYY HH:MM:SS - VB
Формулировка задачи:
есть лог файл
там есть одно поле, содержащее число, например 1103685238.785
как по-быстрому перевести с формат DD/MM/YYYY HH:MM:SS ?
Решение задачи: «Преобразование дат с формат DD/MM/YYYY HH:MM:SS»
textual
Листинг программы
Private Sub Form_Load() Dim y As Long, m As Integer, d As Integer, hh As Integer, mm As Integer, ss As Integer, a As Long a = 34650123 MsgBox (DateLinuxToWin(a, y, m, d, hh, mm, ss)) End End Sub Function Feb29(y) As Boolean If y Mod 4 = 0 Then Feb29 = True Else Feb29 = False End Function Function DateLinuxToWin(your_date As Long, ByRef o_year As Long, ByRef o_month As Integer, ByRef o_day As Integer, ByRef o_hour As Integer, ByRef o_minute As Integer, ByRef o_second As Integer) As String a = your_date sec1 = 1 min1 = sec1 * 60 hour1 = min1 * 60 day1 = hour1 * 24 year1n = day1 * 365 year1g = day1 * 366 Dim dd(12) As Integer dd(1) = 31 dd(2) = 28 dd(3) = 31 dd(4) = 30 dd(5) = 31 dd(6) = 30 dd(7) = 31 dd(8) = 31 dd(9) = 30 dd(10) = 31 dd(11) = 30 dd(12) = 31 base_year = 1970 y = base_year ' Ãîä Do If Feb29(y) Then yy = year1g Else yy = year1n If k + yy > a Then a = a - k Exit Do Else y = y + 1 k = k + yy End If Loop k = 0 m = 0 ' ГЊГҐГ±ГїГ¶ Do If k + dd(m) * day1 > a Then a = a - k Exit Do Else m = m + 1 k = k + dd(m) * day1 End If Loop 'm = m + 1 k = 0 d = 0 ' ÄåГ*Гј Do If k + day1 > a Then a = a - k Exit Do Else d = d + 1 k = k + day1 End If Loop k = 0 hh = 0 ' Г—Г*Г± Do If k + hour1 > a Then a = a - k Exit Do Else hh = hh + 1 k = k + hour1 End If Loop mm = 0 k = 0 ' ГЊГЁГ*ГіГІГ* Do If k + min1 > a Then a = a - k Exit Do Else mm = mm + 1 k = k + min1 End If Loop k = 0 ss = 0 ' ÑåêóГ*Г¤Г* Do If k + 1 > a Then a = a - k Exit Do Else ss = ss + 1 k = k + 1 End If Loop ye = LTrim(Str(y)) ye = String(4 - Len(ye), '0') + ye m1 = LTrim(Str(m)) m1 = String(2 - Len(m1), '0') + m1 d1 = LTrim(Str(d)) d1 = String(2 - Len(d1), '0') + d1 hh1 = LTrim(Str(hh)) hh1 = String(2 - Len(hh1), '0') + hh1 mm1 = LTrim(Str(mm)) mm1 = String(2 - Len(mm1), '0') + mm1 ss1 = LTrim(Str(ss)) ss1 = String(2 - Len(ss1), '0') + ss1 n = d1 + '/' + mm1 + '/' + ye + ' ' + hh1 + ':' + mm1 + ':' + ss1 o_year = y o_month = m o_day = d o_hour = hh o_minute = mm o_second = ss DateLinuxToWin = n End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д