Sub Initialize
Dim seconds As Double
Dim convertedDate As Variant
Dim formattedDate As String
' Пример: текущее время в секундах
seconds = 1704067200 ' Пример: 1 января 2024 года
' Преобразование
convertedDate = ConvertSecondsToDate(seconds)
formattedDate = FormatSecondsAsDate(seconds, "DD/MM/YYYY HH:NN:SS")
' Вывод результата
Print "Секунды: " & seconds
Print "Преобразованная дата: " & Cstr(convertedDate)
Print "Форматированная дата: " & formattedDate
' Для отображения в сообщении
Messagebox "Дата: " & formattedDate
End Sub
Function FormatSecondsAsDate(seconds As Double, Optional format As String) As String
On Error GoTo ErrorHandler
Dim dateValue As Variant
Dim baseDate As Variant
baseDate = DateNumber(1970, 1, 1)
dateValue = baseDate + (seconds / 86400)
' Если формат не указан, используем стандартный
If format = "" Then format = "DD/MM/YYYY HH:NN:SS"
FormatSecondsAsDate = Format(dateValue, format)
Exit Function
ErrorHandler:
FormatSecondsAsDate = "Ошибка: " & Error$
End Function
Function ConvertSecondsToDate(seconds As Double) As Variant
On Error GoTo ErrorHandler
Dim baseDate As Variant
Dim resultDate As Variant
' Проверка на валидность входных данных
If seconds < 0 Then
ConvertSecondsToDate = Cstr("Неверное значение секунд")
Exit Function
End If
' Создаем базовую дату (1 января 1970)
baseDate = DateNumber(1970, 1, 1)
' Добавляем секунды (1 день = 86400 секунд)
resultDate = baseDate + (seconds / 86400)
ConvertSecondsToDate = resultDate
Exit Function
ErrorHandler:
ConvertSecondsToDate = Cstr("Ошибка преобразования: " & Error$)
End Function