Преобразование дат с формат 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы